5

名前の一部でデータ属性の値を取得するにはどうすればよいですか?
例えば:

<div data-pcp-email="some text" data-pcp-order="some int" data-ref="some data"></div>

そして、すべてのデータ属性を次のように取得したいとしますdata-pcp-。結果は次のようになりますdata-pcp-emaildata-pcp-order

4

3 に答える 3

4

以下のように、属性名が「pcp」であるすべての属性(およびそれらの値)を取得できます。

// get an object map containing all data attributes
var data = $('selector').data();

// filter out what you need
for(var key in data) {
    if(key.indexOf('pcp') === 0) { // attrib names begins with 'pcp' ?
        console.log(key + ' => ' + data[key]);
    }
}

これがデモです:http://jsfiddle.net/8waUn/1/

于 2013-02-10T08:22:18.890 に答える
1

HTMLまたはjQueryattr関数でのみ属性を設定する場合:

$('div[data^=pcp-]')

datajQueryの関数で値を設定する場合は、を使用する必要がありますfilter

$('div').filter(function(){
    var data = $(this).data();
    for (var key in data){
        return key.indexOf('pcp-') === 0;

    }
});

使用できる属性のみが必要な場合map

var values = $('div').map(function () {
    var data = $(this).data();
    var results = [];
    for (var key in data) {
        if (key.indexOf('pcp') === 0) results.push({
            key: key,
            value: data[key]
        });
    }
    if (results.length) 
        return results;
}).get();

console.log(JSON.stringify(values));

ライブデモ

于 2013-02-10T08:18:51.643 に答える
-2

「属性はで始まる」jQueryセレクターを使用します

$('div[data^=pcp-]')
于 2013-02-10T08:18:11.923 に答える