簡體   English   中英

如何使用jquery獲取所有元素的數據屬性值?

[英]How to get data attribute value of all elements using jquery?

如何在沒有$ .each的情況下使用jquery獲取所有元素的數據屬性值?

<li class="myclass" data-optionid="2"></li>
<li class="myclass" data-optionid="15"></li>
<li class="myclass" data-optionid="27"></li>

結果應該是:2,15,17

我嘗試了$('.myclass').data('optionid')但結果是2

提前致謝。

$('.myclass')將選擇具有類myclass所有元素,但是當使用.data()時,它將返回匹配集中第一個元素的數據屬性值,從而返回2

由於有多個元素具有data-attribute,因此您需要使用$.each迭代它們

$('.myclass').each(function() {
    console.log($(this).data('optionid'));
});

 $('.myclass').each(function() { console.log($(this).data('optionid')); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <li class="myclass" data-optionid="2"></li> <li class="myclass" data-optionid="15"></li> <li class="myclass" data-optionid="27"></li> 

如果要將結果作為數組獲取,請使用$.map$.get

var data = $('.myclass').map(function() {
    return $(this).data('optionid');
}).get();

 var data = $('.myclass').map(function() { return $(this).data('optionid'); }).get(); console.log(data); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <li class="myclass" data-optionid="2"></li> <li class="myclass" data-optionid="15"></li> <li class="myclass" data-optionid="27"></li> 

請試試這個

 $(".myclass").each(function(){ alert($(this).attr("data-optionid")); }); 

我不確定你是否注意到了這個小錯字,但是先關閉了開頭的<li>標簽。

<li class="myclass" data-optionid="2"></li>
<li class="myclass" data-optionid="15"></li>
<li class="myclass" data-optionid="27"></li>

使用jQuery代碼,您不必執行$ .each,因為jQuery可以在初始元素選擇器中執行此操作。 因此,如果您在選擇器上執行.prop以獲取data-optionid,那么您將獲得該值。

$(".myclass").attr("data-optionid");

關於HTML的靈活性,您可以創建自己的屬性以在代碼的其他部分中使用。 如果瀏覽器無法識別它,則會被忽略。

您應該使用$.each或使用$.map作為多個元素

 var arr=[]; $('.myclass').each(function(i,item){ arr.push($(item).data('optionid')); }) alert(arr.toString()); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <li class="myclass" data-optionid="2"></li> <li class="myclass" data-optionid="15"></li> <li class="myclass" data-optionid="27"></li> 

使用$.each()迭代器函數,並為每個對象訪問其選項數據屬性。

$('.myclass').each(function() {
    console.log($(this).data('optionid'));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM