javascript - 如何比较 ul li 文本和数组值

标签 javascript jquery html

我正在使用 jQuery Vector Map,用户选择的区域名称必须添加到 UL li 标记中。我这样做是为了,每当用户单击矢量 map 区域时,相应的区域值就会在 li 标记中更新。

现在我必须满足条件,

如果用户选择的区域值已存在于 li 列表项中。我必须显示警报(“用户选择的区域已在列表中”);

如果用户选择的区域值不在 li 项目中,我必须将区域值添加到 li 项目中。

这里是示例代码 - (用户选择的区域状态值,我在“区域”中获取)

   var regionList = new Array('Alaska','Alabama','Arkansas','Arizona', etc....) /* sample array*/


   if( li item text value  == arrayvalue) /*exact condition statement I want*/
   {
       alert("user selected region already in the list")

   }
    else
   {
          $('<li>' + region + '</li>').appendTo('ul#location-selected');
   } 


   <ul id="location-selected" style="font-weight:bold;width:350px;padding-top:15px;color:red;"></ul>

请帮我完成这个..

最佳答案

var ul = document.getElementById('location-selected');
var lis = ul.getElementsByTagName('li');

for(var i = 0; i < lis.length; i++){
    if(lis[i].innerHTML === region) {
        isInList = true;
        break;
    }
}

if(isInList)
    alert("user selected region already in the list")
else {
    var newli = document.createElement('li');
    newli.innerHTML = region;
    ul.appendChild(newli);
}

jQuery:

var ul = $('#location-selected');
var lis = ul.children('li');

var isInList = false;
for(var i = 0; i < lis.length; i++){
    if(lis[i].innerHTML === region) {
        isInList = true;
        break;
    }
}

if(isInList)
    alert("user selected region already in the list")
else
    var newli = $('<li></li>').html(region).appendTo(ul);

关于javascript - 如何比较 ul li 文本和数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15279767/

相关文章:

javascript - 我的 append() 似乎不起作用

javascript - 是否有一个库可以根据 JavaScript 的 beta 分布生成随机数?

Javascript indexOf 对象未找到

javascript - 使目标 ="_blank"始终在同一窗口(不是父窗口)中打开

javascript - 合并 JS 流时保留 sourcemaps(用 browserify bundle 连接 lib 依赖)

javascript - jquery mobile 上的多个页面上的一个表单

javascript - 第一次隐藏切换栏

javascript - Bootstrap Datatables Javascript - 长度菜单和导出按钮相互挤压 - 想要在两者之间创建换行符

HTML5/CSS 宽度和边框

html - 在 div 中水平对齐 HTML 元素