我的問題很簡單,但我找不到現有的答案:
如果元素的兩個可能資料屬性之一是“X”,我想選擇元素的子集。
我的選擇器目前看起來像這樣:
$('.line').data('identifier1', 'X');
.data('identifier2', 'X')如果可以使用 jQuery,我想使用 OR 陳述句添加到同一個選擇器?
因此,結果應該是所有 .line 元素都被選中,如果它們在其 data-identifier1 或 data-identifier2 中具有值“X”。
這是一個僅缺少 OR 陳述句的片段:
let myCollection = $('.line').data('indentifier1', "X");
console.log(myCollection);
//myCollection should get divs 1,3,4 but not 2
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="line" data-identifier1="X" data-identifier2="Y">1</div>
<div class="line" data-identifier1="Y" data-identifier2="Y">2</div>
<div class="line" data-identifier1="Y" data-identifier2="X">3</div>
<div class="line" data-identifier1="X" data-identifier2="X">4</div>
uj5u.com熱心網友回復:
您可以像這樣查詢data屬性并,用作or.
let myCollection = $('.line[data-identifier1="X"],.line[data-identifier2="X"]');
console.log(myCollection);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="line" data-identifier1="X" data-identifier2="Y">1</div>
<div class="line" data-identifier1="Y" data-identifier2="Y">2</div>
<div class="line" data-identifier1="Y" data-identifier2="X">3</div>
<div class="line" data-identifier1="X" data-identifier2="X">4</div>
uj5u.com熱心網友回復:
您可以使用each()和一個陣列來存盤每個 div
let DivsLine = $('.line');
let myCollection = new Array();
$(DivsLine).each(function(index, value){
let identifier1 = $(this).data('identifier1');
let identifier2 = $(this).data('identifier2');
if (identifier1 == 'X' || identifier2 == 'X') {
myCollection.push($(this).text());
}
});
console.log(myCollection);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="line" data-identifier1="X" data-identifier2="Y">1</div>
<div class="line" data-identifier1="Y" data-identifier2="Y">2</div>
<div class="line" data-identifier1="Y" data-identifier2="X">3</div>
<div class="line" data-identifier1="X" data-identifier2="X">4</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/425067.html
標籤:javascript jQuery
