2017-08-03 16 views
0

liのリストがあり、クラス名がms-selectedのものだけを取得する必要があります。私が反復しているリストから、それぞれlili#49-selection.ms-elem-selection.ms-selectedと表示されます。数字は必ずしも同じではなく、私はliの値が.ms-selectedのものだけを探しています。どうすればこれを達成できますか?これまでさまざまなバリエーションを試しました。liの項目のクラス名で要素のテキスト/値を取得

var thelist = $("#ms-fmultiselect .ms-selection .ms-list li"); 

$.each(thelist, function (i, obj) { 
    thearray.push({ id: $(".ms-selected").val() }); 
}); 

答えて

2

jQuery .hasClass()関数を使用してください。ここで

var thelist = $("#ms-fmultiselect .ms-selection .ms-list li"); 

$.each(thelist, function (i, obj) { 
    if($(obj).hasClass('ms-selected')){ 
     thearray.push($(obj).val()); 
    } 
}); 

は単純化されたセレクタと実施例である:あなたが使用する必要が

var thelist = $('input'); 
 
var thearray = []; 
 
$.each(thelist,function(i,obj){ 
 
\t if($(obj).hasClass('ms-selection')){ 
 
     thearray.push($(obj).val()); 
 
    } 
 
}); 
 

 
console.log(thearray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="test1"> 
 
<input type="text" class="ms-selection" value="test2"> 
 
<input type="text" value="test3"> 
 
<input type="text" value="test4"> 
 
<input type="text" class="ms-selection" value="test5"> 
 
<input type="text" value="test6"> 
 
<input type="text" class="ms-selection" value="test7"> 
 
<input type="text" value="test8">

1

.each

var thelist = $("#ms-fmultiselect .ms-selection .ms-list li"); 
thelist.each(function(idx, li) { 
    var item = $(li); 
    if(item.hasClass('ms-selected'){ 
     thearray.push({ id: item.val() }); 
    } 
}); 
+0

ここでの問題は、彼は '$の.each()'や '$のelem.each()'ではなくではありませんhasClass' 'の使用を使用して天気をされていません彼の元の質問では全く。 –

0

あなたのリストにしたい項目だけがクラス「MS-選択」を持っているものであれば、あなたは単にどのちょうど必要なセレクターを上の反復するくらいの方が良いだろう

var thelist = $("#ms-fmultiselect .ms-selection .ms-list li.ms-selected"); 
0

を行うことができるはず"#ms-fmultiselect .ms-selection .ms-list li.ms-selected"です。これは、ms選択されたクラスを持つすべてのフィルターされたliを返します。このようにして、不要な要素を繰り返し処理したり、再度フィルタリングする必要はありません。

あなたは使用することができます

$("#ms-fmultiselect .ms-selection .ms-list li.ms-selected").each(function(){ 
      thearray.push($(this).val()); 

    }); 
関連する問題