以下代码是测试件。通常,链接中的href将指向“http://www.google.com/”,但attr应将其更改为引用“http://maps.google.com”但是,引用不会更改。谁能告诉我它为什么不起作用?感谢
<html>
<head>
<script type="text/javascript">
$("a#changeme").attr('href',
'http:\/\/maps.google.com/');
</script>
</head>
<body>
<div class="content">
<p>Link to <a href="http://www.google.com/"
id="changeme">Google</a>
in the content...</p>
</div>
</body>
</html>
答案 0 :(得分:2)
$(document).ready
处理程序中。代码:
window.onload = function() {
document.getElementById("changeme").href = 'http://maps.google.com/';
};
onload
处理程序与DOMContentLoaded处理程序并不完全相同,但它有更好的支持,可能在此处首选。或者,您可以将<srcipt>
块移动到<body>
的末尾,然后使用不带任何onload
处理程序的方法:
<body>
<div class="content">
<p>Link to <a href="http://www.google.com/" id="changeme">Google</a>
in the content...</p>
</div>
<script type="text/javascript">
// This code is placed after the element, so the reference does exist now.
// In the head, the same code will throw an error, because the body doesn't
// even exist.
document.getElementById("changeme").href = 'http://maps.google.com/';
</script>
</body>
答案 1 :(得分:0)
脚本位于标题中,因此它在加载其他内容之前执行(如果jQuery甚至处于活动状态,则看不到对它的引用)。你应该将它放在一个函数中,然后稍后调用它(例如通过onload
或计时器)。我还可以考虑浏览器中的安全功能,以防止网站在您点击它们之前操纵链接。
答案 2 :(得分:0)
以下是正确的jQuery方法的代码(使用文档准备好)。
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#changeme").attr('href', 'http:\/\/maps.google.com/');
});
</script>
</head>
<body>
<div class="content">
<p>Link to <a id="changeme" href="http://www.google.com/">Google</a>
in the content<a href="test">test</a>...</p>
</div>
</body>
</html>