0

順序付けられていないリストのテキストを、文字列の内容を取得して解析して作成した配列と比較しようとしています。文字列が配列内に存在するかどうかを確認するために、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');
    }
});
4

3 に答える 3

1

あなたは試すことができます:

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');
   }
});
于 2012-06-26T21:51:01.293 に答える
1

$.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');
    }
});​

デモを見る

于 2012-06-26T21:53:41.537 に答える
0

次の行のコンマの後にスペースを追加します...

subjectArray = subject_passed.split(', ');
于 2012-06-26T21:51:27.180 に答える