更改自定义属性值

Change custom attribute values

本文关键字:自定义属性      更新时间:2023-09-26

我在一些代码中添加了要更改其值的自定义属性。

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

以下是我正在尝试的:

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

但一切都没有改变。我怎样才能让它发挥作用?

首先,发明自己的属性意味着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

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

你可以做这样的自定义元素。

<myCustomElement></myCustomElement>

然后像一样选择

$('myCustomElement')...

另一种选择是使用数据属性。

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

然后像这样选择

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