使用jQuery创建新属性

时间:2012-10-18 07:49:49

标签: javascript jquery image attr

  

可能重复:
  jQuery .attr retrieving custom attribute returns undefined

我有一个奇怪的问题,但我希望我只是做一些愚蠢的事情。我正在尝试使用jQuery在<img>元素上创建一个新属性,这一行:

$(selector).attr('selected', 'no');

当我在Chrome中检查DOM时,无论我将值设置为什么,我都会看到selected =“selected”。

只是一些额外的信息:我不能只使用布尔值,因为我需要跟踪“是”,“否”和“部分”属性值。我正在从img本身的“onClick”事件中调用JS函数,并将this作为参数传递。我检查了方法中的对象,并传递了正确的对象;设置属性的事实(即使是错误的值)也支持这一点。

我已经确定我在这里做了些蠢事...任何建议都会受到赞赏。

4 个答案:

答案 0 :(得分:11)

Selected已经是HTML标准中的一个属性,因此您无法创建具有相同名称的自定义属性。在这种情况下,您应该使用data-属性,并创建一个属性data-selected

在jQuery中,您使用.data()方法处理自定义数据属性。

自定义数据属性在HTML5规范here中进行了描述。

答案 1 :(得分:5)

您可以插入data-*自定义属性,如此

$(selector).data('selected', 'no');

您的元素将设置data-selected属性

答案 2 :(得分:2)

如果您需要将任意数据附加到元素,请使用.data(),而不是.attr()

答案 3 :(得分:1)

DOM属性与DOM属性不同;)

我建议您使用$(selector).data()作为用例。