我有一些代码,我添加了自定义属性,我想改变它的值。
<div myCustomElement="someValue"></div>
以下是我正在尝试的内容:
$("#somebutton").click(function() {
$('myCustomElement').val('SomeNewValue');
});
但没有任何改变。我怎样才能让它发挥作用?
答案 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'