繁体   English   中英

jQuery / Javascript - 从无序列表中查找字符串是在数组中

[英]jQuery/Javascript - finding a string from an unordered list is in an array

我试图将无序列表中的文本与我通过抓取字符串中的内容然后解析它而创建的数组进行比较。 我似乎无法让我的jQuery代码的比较部分工作,我检查字符串是否存在于数组中。 有什么建议么?

HTML

<span id="Subjects">Commercial Law & Contracts, Immigration Law, International Law & Trade, Products Liability</span>
<ul id="SubjectList">
  <li>Administrative Law</li>
  <li>Agriculture Updates</li>
  <li>Alternative Dispute Resolution</li>
  <li>Antitrust & Trade Regulation</li>
  <li>Commercial Law & Contracts</li>
  <li>Immigration Law</li>
  <li>International Law & Trade</li>
  <li>Products Liability</li>
</ul> 

JQuery代码

var subject_passed = $('#Subjects').text();
var subjectArray = new Array();
subjectArray = subject_passed.split(',');   

$('#SubjectList li').each(function(){  
    if ($.inArray($(this).text(), subjectArray) != -1) {
        alert('hello');
    }
});

你可以尝试:

var subject_passed = $('#Subjects').text();
//var subjectArray = new Array(); //not really needed as split returns new a array
var subjectArray = subject_passed.split(', '); //add a space to split

$('#SubjectList li').each(function(){  
   if ($.inArray($(this).text(), subjectArray) !== -1) { //better to use !== for comparison
     alert('hello');
   }
});

您应该使用$.trim()从拆分后和比较期间的文本值中删除外部空格:

var subject_passed = $('#Subjects').text();
var subjectArray = subject_passed.split(','); 
$.each(subjectArray, function(i, el){
    subjectArray[i] = $.trim(el);
});

$('#SubjectList li').each(function(){  
    if ($.inArray($.trim($(this).text()), subjectArray) != -1) {
        $(this).addClass('highlight');
    }
});​

见演示

在以下行中的逗号后面添加一个空格...

subjectArray = subject_passed.split(', ');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM