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

时间:2013-03-07 19:14:20

标签: javascript jquery html

我正在使用jQuery Vector Map,我必须在UL li标签中添加用户选择的区域名称。我这么做是因为,每当用户点击矢量地图区域时,相应的区域值就会在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>

请帮我完成这个..

1 个答案:

答案 0 :(得分:1)

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);