簡體   English   中英

有沒有一種方法可以基於單個值在html元素的多個數據屬性內搜索數組?

[英]Is there a way to search an array inside multiple data attributes of an html element based on a single value?

我有一個html元素,該元素在data屬性內使用數組

<div data-area='["North America", "United Kingdom"]'>Test</div>

我具有與不同“事物”有關的多個數據屬性

<div data-area='["North America", "United Kingdom"]' data-job='["Programmer","Scientist"]'>test</div>

如何基於1值搜索整個元素上的所有數據屬性標簽?

我正在嘗試使用選擇器,而不是遍歷每個數據屬性,這可能嗎?

這是一個例子,再加上我嘗試過的東西。

// search all data attributes of a div element that contains the given value and apply a hidden class
// this should search every data attribute for "Programmer"
$('[data-*="Programmer"]').addClass('hidden');

http://jsfiddle.net/pWdSP/1/

我只能想到這種解決方案:

$('body *').addClass(function() {
    var data = $(this).data();
    for (var i in data) if (data.hasOwnProperty(i)) {
        if (data[i].indexOf('Programmer') > -1) {
            return;
        }
    }

    return 'hidden';
});

http://jsfiddle.net/pWdSP/4/

這不是最佳方法,因為它會遍歷所有DOM節點,但是我看不到其他方法來選擇所有具有data-*屬性的節點。

如果對應該檢查的節點有一些更精確的標准-強烈建議相應地更改選擇器(而不是body *

暫無
暫無

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

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