jQuery .attr 获取自定义属性返回 undefined。

8
我在使用 jQuery 时遇到了以下问题。
我有类似这样的东西。
<div id="yxz" value="1">
  <span class="delete"></span>
</div>

现在我有这个函数,但它只返回“undefined”,如果我要求它返回id或类,则会返回它们。
$(".delete").click(function(){
  alert($(this).parent("div").attr("value"));
});

我以前也是用同样的属性来获取这个值。这是否与我现在使用 jQuery 1.6.1 而不是 1.5.2 有关呢?
谢谢您的帮助。
5个回答

5

我可以确认这段代码在Chrome 11、Firefox 4和IE 9上完美运行,使用的是jQuery Git版本。

编辑:对于建议使用prop()的人,请查看文档。prop()用于布尔属性,如:checked、disabled等。


3

要获取元素的值,使用val()。由于div没有值,因此应该使用data()来设置和获取数据。


嗯,我并没有真正使用data(),因为我的值来自数据库并已经存在,但是使用data="1"而不是value="1",然后使用.attr("data")确实起作用了。在jquery 1.5中,value也可以工作。 - Lukas Oppermann
2
@Lukas:我认为他的意思是让你使用 data-value="1" 然后使用 .data('value') - Markus Hedlund
1
实际上,数据函数不会为元素设置任何属性。它只是一个内部映射,将数据存储到给定的元素中。但是,“value”是一种保留的东西,在这种情况下应该避免使用。很高兴你完成了它。 - Tim Büthe
我也刚刚自己弄明白了,但还是谢谢你。现在我正在按照你的建议使用它。 :) - Lukas Oppermann

0

0

是的,自 jQuery 1.6 版本起,我认为您需要使用 .prop() 而不是 attr()


0

你的代码在this fiddle上看起来运行良好,使用的是jQuery 1.6


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接