我已经使用的ID和标题,但我需要通过2个比特来解析...jQuery attr是否允许非标准?
$(this).attr("title"); $(this).attr("id");
请问$(this).attr("custom1");
工作?
我已经使用的ID和标题,但我需要通过2个比特来解析...jQuery attr是否允许非标准?
$(this).attr("title"); $(this).attr("id");
请问$(this).attr("custom1");
工作?
是的,顺便说一句,你可以一次设置多个属性:
$('.myselector').attr({
src: 'thefile.gif',
width: 200,
height: 300 });
是的,你可以在HTML5中使用它所有的data-attributes
。哪种方式可以添加额外的属性?
此外,所有data-*
属性被自动添加到jQuery的data()
对象为方便
如果你只是想关联(通过名称)的一些数据与DOM元素,你最好使用”。数据() “方法:
$(this).data('custom1', someValue);
的”。资料()” API使得HTML5式 “数据foo” 的属性编码成访问的HTML:
var foo = $(this).data('foo'); // gets the "data-foo" attribute value from element
这是所有点的清晰的解决方案。所以你不礼貌你的HTML标记与无效属性。也许你也可以在这里查看api:http://api.jquery.com/data/ – onigunn 2011-03-07 18:16:38
@asrijaal:'.data'在所有点上都不是更清洁的。使用'.data'在读写之间缺乏对称性:'.data('custom','foo')'不会将'data-custom =“foo”'放入DOM中。 '.attr'没有这个问题。您写入的任何[原始]都可以在DOM中访问。 – 2011-03-07 18:48:00
@Roatin Marth是的,这是真的,但一致使用“.data()”我不明白为什么它很重要。由于内存使用原因,将JavaScript对象直接附加到DOM元素是有风险的,因为(主要在IE中)DOM元素的JavaScript附录不能被DOM收集器垃圾收集。 – Pointy 2011-03-07 18:49:37
是的,但它不是一个好主意。
如果您想在元素上存储某些数据,请更好地使用.data('foo', 'bar');。
为什么它不是一个好主意? .data()是否在带有html5文档类型和IE8的页面上工作? .attr()似乎对我很好,虽然我好奇,为什么.data是更好的选择。谢谢! – Chris 2014-01-30 04:16:58
是的,你可以做的最好的事情就是测试它。
<script>
$(document).ready(function() {
// Handler for .ready() called.
alert("custom1 = " + $("#myField").attr("custom1"));
});
</script>
<div id="myField" custom1="My Custom Field"></div>
现在,你破坏了标记,所以我建议存储ALT标签或名称标签您的信息,以防止()。
你可以尝试,并告诉我们:O) – 2011-03-07 18:12:41