如何用jQuery添加HTML属性
那么,我有这个jQuery图像幻灯片,使用<a>内的属性“控制”。看到它没有验证我搜索了一种方法来通过jQuery在我的HMTL中添加这个属性,但是我没有找到任何相关的东西。现在我并不关心页面的有效性,但我很好奇如何在HTML标签中添加HTML属性。如何用jQuery添加HTML属性
如果我不符合我的解释不够清楚,我有这样的代码:
<a id="previous" control="-6" href="#"></a>
我要添加控制=“ - 6”使用jQuery。
由于jQuery的版本已经以及这里介绍的,我想我会提供不同的东西,所以在这里原生DOM API替代方案:
document.getElementById('previous').setAttribute('control','-6');
是的,我知道你问了jQuery。永远不会伤害到自己的方式。 :o)
使用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");
您也可以使用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
试试这个:
$('#previous').attr('control', '-6');
为什么? jQuery的$.attr();函数允许您添加,获取或更新属性(类,id,href,链接,src,控件和其他所有内容!)。
$("#previous").attr("control", "-6");
HTML:
<a id="previous" href="#">...</a>
的jQuery:
$('#previous').attr('control', '-6');
让我看看我是否了解你。 你有,例如,代码:你想
<a id="previous" href="#"></a>
而且通过jQuery的它是:
<a id="previous" control="-6" href="#"></a>
是不是? 如果是。你只需要做:
$('#previous').attr('control', -6);
如果一个属性不存在,它是由jQuery创建的。 因此,删除它,你可以这样做:
$('#previous').removeAttr('control');
你正在做什么不尊重HTML规则和一切,但它工作得很好,有很多的插件做同样的。 ; D
我希望这可能会有所帮助!
见你!
您可以举一个不受尊重的规则示例吗? – Lucas 2014-06-24 14:28:20
字母的HTML规则不接受自定义标签属性。 尝试使用W3C验证器http://validator.w3.org/。 没有什么可担心的,他们只是工作正常。问题在于你的自定义属性可能与插件的自定义属性相冲突,或者甚至与一些新的属性相冲突。 – 2014-06-25 12:54:23
正确的答案。但是,我反对使用data(),我不认为html节点是存储数据的适当位置,这是混合V和M.我总是创建一个模型对象,用于在屏幕上维护任何常见数据。但是,它对于小型应用程序和轻量页面增强功能很有用 – 2010-10-05 18:19:05