我有一个“uid”属性,它在我的“body”标签上有价值......
$(document).ready(regFunct());
function regFunct(){
alert($("body").attr("uid"));
}
但它说“未定义”。有什么不对吗?
答案 0 :(得分:5)
尝试:
$(document).ready(function(){
regFunct();
});
function regFunct(){
alert($("body").attr("uid"));
}
答案 1 :(得分:2)
您将regFunct
的返回值放入.ready()
处理程序方法。也就是说,undefined
因为你的函数没有返回任何东西。
您需要传递函数引用,省略括号:
$(document).ready(regFunct);
答案 2 :(得分:1)
嗨添加自定义属性是一种不好的行为。看看http://www.w3schools.com/tags/tag_body.asp,你就没有属性。
如果您想存储自己的数据。使用$.data
(请参阅jQuery site中的文档)
// save the value
$('body').data('uid', mycustomvalue);
// retrieve the value
$('body').data('uid');
如果数据来自服务器,您仍然可以
<script type="text/javascript">
$(function() {
$('body').data('uid', '<?php echo $_GET[uid] ?>');
});
</script>
答案 3 :(得分:1)
$(document).ready(regFunct);
设置为rel标记并检查!
function regFunct(){
alert($("body").attr("rel"));
}
答案 4 :(得分:1)
更新:在Internet Explorer中似乎未定义,因为uid不是已知属性。修复方法是使用jQuery.data()
将数据插入元素。
$(document).ready(regFunct());
function regFunct(){
$('body').data('uid', 1337);
alert($('body').data('uid'));
}
但是你必须自己分配这个uid。例如,您可以通过页面上的<script>
进行此操作。
<script type="text/javascript">
$(document).ready(setData());
function setData(){
$('body').data('uid', 1337);
}
</script>
有关http://api.jquery.com/jQuery.data/
上的jQuery.data()的更多信息工作示例:http://jsfiddle.net/6Bwtt/1/
但是如果你试图从服务器端保存页面上的数据,你可以在身体后面有一些不可见的元素,例如<div id="uid" style="display:none;">Your ID here</div>
然后使用$("#uid").html();
Voila获取它! :)