jQuery getAttribute

时间:2011-01-25 10:12:26

标签: jquery

我有一个“uid”属性,它在我的“body”标签上有价值......

$(document).ready(regFunct());

function regFunct(){
   alert($("body").attr("uid"));
}

但它说“未定义”。有什么不对吗?

5 个答案:

答案 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获取它! :)