2010-10-05 100 views
14

那么,我有这个jQuery图像幻灯片,使用<a>内的属性“控制”。看到它没有验证我搜索了一种方法来通过jQuery在我的HMTL中添加这个属性,但是我没有找到任何相关的东西。现在我并不关心页面的有效性,但我很好奇如何在HTML标签中添加HTML属性。如何用jQuery添加HTML属性

如果我不符合我的解释不够清楚,我有这样的代码:

<a id="previous" control="-6" href="#"></a> 

我要添加控制=“ - 6”使用jQuery。

回答

13

由于jQuery的版本已经以及这里介绍的,我想我会提供不同的东西,所以在这里原生DOM API替代方案:

document.getElementById('previous').setAttribute('control','-6'); 

是的,我知道你问了jQuery。永远不会伤害到自己的方式。 :o)

25

使用jQuery的attr功能

$("#previous").attr("control", "-6"); 

一个例子

// Try to retrieve the control attribute 
// returns undefined because the attribute doesn't exists 
$("#previous").attr("control"); 

// Set the control attribute 
$("#previous").attr("control", "-6"); 

// Retrieve the control attribute (-6) 
$("#previous").attr("control"); 

看到这个example on jsFiddle


您也可以使用data功能来存储值上的元素。以同样的方式,例如:

$("#previous").data("control"); // undefined 
$("#previous").data("control", "-6"); // set the element data 
$("#previous").data("control"); // retrieve -6 

使用data可以存储喜欢的对象更加复杂的值

$("#previos").data("control", { value: -6 }); 
($("#previos").data("control")).value; // -6 

看到一个data example on jsFiddle

+1

正确的答案。但是,我反对使用data(),我不认为html节点是存储数据的适当位置,这是混合V和M.我总是创建一个模型对象,用于在屏幕上维护任何常见数据。但是,它对于小型应用程序和轻量页面增强功能很有用 – 2010-10-05 18:19:05

1

试试这个:

$('#previous').attr('control', '-6'); 

为什么? jQuery的$.attr();函数允许您添加,获取或更新属性(类,id,href,链接,src,控件和其他所有内容!)。

1
$("#previous").attr("control", "-6"); 
1

HTML:

<a id="previous" href="#">...</a> 

的jQuery:

$('#previous').attr('control', '-6'); 
2

让我看看我是否了解你。 你有,例如,代码:你想

<a id="previous" href="#"></a> 

而且通过jQuery的它是:

<a id="previous" control="-6" href="#"></a> 

是不是? 如果是。你只需要做:

$('#previous').attr('control', -6); 

如果一个属性不存在,它是由jQuery创建的。 因此,删除它,你可以这样做:

$('#previous').removeAttr('control'); 

你正在做什么不尊重HTML规则和一切,但它工作得很好,有很多的插件做同样的。 ; D

我希望这可能会有所帮助!

见你!

+0

您可以举一个不受尊重的规则示例吗? – Lucas 2014-06-24 14:28:20

+1

字母的HTML规则不接受自定义标签属性。 尝试使用W3C验证器http://validator.w3.org/。 没有什么可担心的,他们只是工作正常。问题在于你的自定义属性可能与插件的自定义属性相冲突,或者甚至与一些新的属性相冲突。 – 2014-06-25 12:54:23