我的代码:
<head>
<script src="/static/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
var value = jQuery('#continue').attr('value');
alert(value);
</script>
<title>$pageTitle</title>
</head>
<body>
<div class="notifier">
<form>
<button>Cancel</button>
<button id="continue" value="next">Continue</button>
</form>
</div>
</body>
我希望我有next
,但我会收到警告的undefined
消息。即使我尝试从任何其他标签中获取html()
,也会发生这种情况。
答案 0 :(得分:2)
#continue
元素没有准备好:
$(document).ready(function() {
var value = $('#continue').attr('value');
alert(value);
});
答案 1 :(得分:1)
您需要将您的代码包装在document.ready处理程序中,以便可以访问jQuery对象,如下所示:
<script type="text/javascript">
$(function() {
var value = jQuery('#continue').attr('value');
alert(value);
});
</script>
答案 2 :(得分:0)
在jQuery API中说:
从jQuery 1.6开始,
.attr()
方法返回属性 undefined 尚未设定。此外,不应使用.attr()
普通对象,数组,窗口或文档。要检索和 更改DOM属性,使用.prop()
方法。
从您的代码示例中我看到您正在使用jQuery 1.7.1,因此可能使用.prop()
方法而不是.attr()
来解决您的问题。