我想用JavaScript打印页面中的第一个链接。但是,当我使用以下代码时,它不起作用:
<html>
<head><title></title></head>
<body>
<a id="mylink" href="http://google.com">Google</a><br />
<script>
a=$('mylink').href;
document.write(document.links[0]);
</script>
</body>
</html>
然后我注释掉代码“a=$('mylink').href
”,它突然起作用了,为什么?为什么varable a
对下一个声明有什么影响?
感谢任何答案。
答案 0 :(得分:2)
有几种可能性:
$
并导致JavaScript错误,导致第二个语句无法执行$
对象不知道如何处理传入的字符串和错误$
返回的值没有值(即 - 它返回undefined
)没有属性href
,导致JavaScript错误答案 1 :(得分:1)
代码无效,因为在您的示例中$对象不存在并将导致错误。您似乎尝试使用像jQuery($ object)这样的JavaScript框架,但是您忘了包含它。
尝试添加以下脚本-Tag:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
如果你想使用jQuery,你还应该通过.attr(&#34; attrname&#34;)函数访问属性。 E.g。
var a = $('#mylink').attr('href');
再次,如果你想使用jQuery,你必须改变选择器来自&#34; mylink&#34;到#m;#mylink&#34;指定您正在搜索具有ID&#34; mylink&#34;。
的元素答案 2 :(得分:0)
我对你要做的事感到有点困惑,但是你不能只用js写出整个链接吗?例如:
<script>
<!--
document.write('<a href="http://google.com">Google</a>');
-->
</script>
<noscript>
<a href="http://google.com">Google</a>
</noscript>
脚本中的注释标记被忽略,只有那里不支持javacript的浏览器不会在文档中打印它。 <noscript>
是不支持javascript的浏览器具有备用内容。
答案 3 :(得分:0)
它不起作用,因为a=$('mylink').href
无法执行并停止执行以下代码。代码document.write(document.links[0])
是正确的。当你在没有错误行的情况下调用它时,它就可以正常工作。
我认为在第一行你正在尝试使用jQuery库。如果你想这样做,你需要使用<script>
标签包含jQuery库,然后使用以下代码:
document.write($('a:first').attr("href"));
答案 4 :(得分:0)
删除jQuery的东西,你不需要它。正如您已经发现的那样,有一个document.links集合,所以如果您想打印文档中第一个链接的herf值:
document.write(document.links[0].href)
你已经完成了。