我正在尝试使用jQuery更改HTML属性,但无论我做什么,我都无法使用jQuery的.attr()。
为了测试,我写了
alert($("#logo").attr("title"));
即使我有一个带有id =“logo”和标题的img,警报仍然是空白的。
我的完整方法:
function switchVideo(videoID) {
var videoPlayer = document.getElementById("example_video_1");
videoPlayer.src = "video/Occam.webm";
videoPlayer.load();
$("#example_video_1").attr("poster", "video/ss.png");
//Doesn't work:
alert($("#logo").attr("title"));
$("#logo").fadeOut();
videoPlayer.play();
}
我的淡出功能正常,所以我知道我正确导入了jQuery。
我已经在另一个文档中使用了它,因此文档中必须有其他东西搞乱它。有谁知道为什么这个简单的方法不起作用?
看到源页面答案 0 :(得分:8)
你的div有id徽标,而不是img。 试试:
$("#logo img").attr("title")
答案 1 :(得分:3)
您现在应该使用$ .fn.prop:http://api.jquery.com/prop/
答案 2 :(得分:2)
如果您使用的是最新版本的jQuery,则应使用prop
。
答案 3 :(得分:2)
答案 4 :(得分:1)
您有以下标记为logo
<div id="logo">
......
</div>
现在,您正尝试通过以下代码运行jQuery的.attr
方法。
$("#logo").attr("title");
您可能知道.attr
方法检索给定元素的属性值,但<div>
没有名为title的属性。所以要确认这一点,请尝试检索确实存在的属性,例如id
。所以试试这个
alert($("#logo").attr("id"));
这将返回属性的值。需要注意的重要事项是jQuery只查找给定元素的属性,它不扫描子元素。
所以,让它适合你的情况。您需要执行以下操作
alert($("#logo img").attr("title"));
希望有所帮助