-2

我正在尝试使用放置在头部的脚本访问头部标记的属性。

<head myattr="123">
    <script src="/Scripts/jquery.min.js" type="text/javascript"></script>

    <script type="text/javascript">
        alert($("head").attr("myattr"));

    </script>
    ...

我不能在 .net 中使用包含或 <%#"123%> 或 <%="123%> “因为代码执行顺序和页眉绑定。所以我只是从代码隐藏中设置 header 属性。

无论如何,问题是:我解决问题的方式有问题吗?有没有可能当我打电话时alert($("head").attr("myattr"));我能得到undefined回应?

我假设由于在调用脚本<head myattr="123">之前发生alert(...),我不会收到undefined警报......我假设错了吗?

编辑:忘了提。不能使用$(document).ready(...它必须在标题中执行。我基本上担心是否有任何未知数,例如我没有考虑的兼容性问题等。也许有些浏览器会返回 undefined 有些不是?也许在某些情况下它可能执行得太早?

4

4 回答 4

2

我不认为你会得到一个未定义的,因为正如你所说,它在 HTML 中高于你的脚本。但是,像这样将您的电话包装在 $(document).ready 中并没有什么坏处。

$(document).ready(function () {
   alert($("head").attr("myattr"));
})

只要设置了“myattr”,它就永远不会返回 undefined。

于 2013-04-07T20:00:21.713 回答
1

很好,因为您的脚本在 head 标签之后/之内。但是,myattr会使您的 HTML 无效。

于 2013-04-07T20:05:58.217 回答
0
alert($("head:first").attr("myattr"));
于 2013-04-07T20:01:19.357 回答
0

alert()加载 DOM 后进行调用,如下所示:

$(function() {
     alert(...)
});
于 2013-04-07T20:01:56.723 回答