更改自定义属性值

时间:2016-01-04 17:15:43

标签: javascript jquery

我有一些代码,我添加了自定义属性,我想改变它的值。

<div myCustomElement="someValue"></div>

以下是我正在尝试的内容:

$("#somebutton").click(function() {
    $('myCustomElement').val('SomeNewValue');
});

但没有任何改变。我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:2)

首先,发明您自己的属性意味着您的HTML无效,并可能导致您的网页出现问题。其次,val()用于直接更改元素的value属性,因此它在您的示例中没有任何效果。

要实现您的需求,请使用data-*属性,因为它们是用于此目的:

<div data-custom="someValue"></div>
$("#somebutton").click(function() {
    // getter:
    var foo = $('div').data('custom'); // = 'someValue'

    // setter:
    $('div').data('custom', 'someOtherValue');
});

请注意data()在内存中维护一个对象,因此您所做的任何修改都不会在DOM中显示。

有关详细信息:http://api.jquery.com/data

答案 1 :(得分:1)

你的元素不是自定义的,它仍然是一个div。

你可以像这样做一个自定义元素。

<myCustomElement></myCustomElement>

然后选择

$('myCustomElement')...

另一种方法是使用数据属性。

<div data-myCustomData="test"></div>

然后选择如此

var data = $('div').data('myCustomData')//data = 'test'