Javascript jQuery attr()方法创建数据破折号属性
我试图弄清楚,为什么在向(比如图像)添加数据属性时,需要将属性名放在引号中。我知道这需要去做,但如果有学生问我,我不会有确切的答案。下面举两个例子 1.)我正在寻找破折号问题的解释。Javascript jQuery attr()方法创建数据破折号属性,javascript,jquery,html,attr,Javascript,Jquery,Html,Attr,我试图弄清楚,为什么在向(比如图像)添加数据属性时,需要将属性名放在引号中。我知道这需要去做,但如果有学生问我,我不会有确切的答案。下面举两个例子 1.)我正在寻找破折号问题的解释。 2.)有没有办法逃避它,这样你就不需要用引号括起来 这不起作用: $("img").attr({ alt: "a picture of my cat", data-item : "pet", data-color : "orange", }); 这确实有效 $("img").attr({
2.)有没有办法逃避它,这样你就不需要用引号括起来 这不起作用:
$("img").attr({
alt: "a picture of my cat",
data-item : "pet",
data-color : "orange",
});
这确实有效
$("img").attr({
alt: "a picture of my cat",
'data-item' : "pet",
'data-color' : "orange",
});
3.)传递给attr()方法的参数是对象文字,对吗?4.)这只是对象文字语法中不允许破折号的规则吗?1。)在对象文字中,
-
符号不允许作为标识符,因为它也是javascript中的减号运算符
2.)不,你必须使用引号
是的
4)是的,见1。我同意
然而,我要提出的另一点是使用jQuery.data()
jQuery.data()
实际上并不更新DOM,而是更新引用元素的javascript对象并将值存储在其中
由于不需要DOM操作,因此它的性能要好得多
$("img").attr({
alt: "a picture of my cat"
}).data({
item: "pet",
color: "orange"
});
显然,这不会更新元素的属性,因此将来对这些值的任何引用都必须使用jQuery.data()
如果你有兴趣了解它是如何运作的,我不久前写了一篇关于它的文章:
我就是这样解决的:
.attr({ style: "font-size : 50px;background-color : powderblue;font-family:arial" })
作为如何在元素创建语句中指定多个属性的具体示例。这是在上述示例不起作用之后进行的。如果我可以用另一个问题回答:您能声明一个名为
数据颜色的变量吗?不,为什么?-
不是破折号,而是减号运算符。解析器将其解释为减号运算符。你没有,
在“pet”@EricBNo problem阿德里亚诺之后,就像我说的,我花了几分钟的时间来欣赏这个评论,但它确实让我想到了我应该首先处理这个问题的方式。该属性名称的设置与变量设置的绑定规则相同。由于这个原因,您不能使用-dash。对于3),jQuery说:“注意:属性值是字符串,除了一些属性,如value和tabindex。”@florin.prisecariu属性值是属性的实际值,如“在alt
中我的猫的图片”
,不是您传递给.attr
函数的内容我感谢您以这种格式回答了问题!在我的教程中,我将使用它作为一种方式来深入到数据方法中。顺便说一句。。离题。。我喜欢你关于jQUery名称空间的教程,我在twitte上也跟着你。伟大的网站@埃里克谢谢埃里克,我很感谢你的反馈,我很高兴这是有用的:)你觉得你能帮我解决另一个问题吗?我有一段jQUery,我需要先演示链接,然后再将一段代码重构为循环?我有JavaScript中的示例,但无法在jQUery中找到它。如果可以的话,我可以给您发送一封电子邮件?这个数据jQUery存储教程非常棒。我想我会花一些时间在你的网站上。英雄联盟
.attr({ style: "font-size : 50px;background-color : powderblue;font-family:arial" })