如何使用jQuery将DATA-(something)属性添加到.class元素

时间:2015-03-30 18:37:44

标签: jquery

我尝试使用以下代码将data-attribute添加到类元素(.class):

$(".class").data("attribute") === "" ;

以及稍后的

$(".class").attr('data-sr','');

但那根本不起作用。 Option1根本不起作用,而option2仅适用于我的标签名称。 有什么问题,或者我没有使用好东西?

2 个答案:

答案 0 :(得分:2)

使用jQuery的.data()正确分配和读取数据属性,如下所示:

// Assign a data attribute
$(selector).data('my-attr', 'test value');

// Read a data attribute
var value = $(selector).data('my-attr');

如果你想将数据属性添加到DOM本身,你可以使用jQuery的attr(),如下所示:

// Assign a data attribute - note the need to prefix it with "data-"
$(selector).attr('data-my-attr', 'test value');

// Read a data attribute - note the need to prefix it with "data-"
var value = $(selector).attr('data-my-attr');

示例:

$(function() {
    // This value is stored in the jQuery cache object
    $(".testclass").data('val', 'something1');
    alert($(".testclass").data('val'));

    // Alternatively, this value is stored on the DOM element itself
    $(".testclass").attr('data-val', 'something2');
    alert($(".testclass").attr('data-val'));
});

小提琴:http://jsfiddle.net/BenjaminRay/hau9gac9/

答案 1 :(得分:0)

就像.attr()一样,你给出两个参数来改变数据:

$(".class").data("attribute", "value");

请注意,如果您使用.data而非.attr添加数据,则会将其内部存储在jQuery中,您不会将其视为DOM中的data-attribute属性。 jQuery仅在您第一次阅读时使用data-attribute属性作为值的初始来源。