1

我想用 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,突然就可以了,为什么?变量为什么a对下一个语句有影响?

任何答案表示赞赏。

4

5 回答 5

2

有几种可能:

  1. 该对象$未定义并导致 JavaScript 错误阻止您执行第二条语句
  2. $对象不知道如何处理传入的字符串和错误
  3. from 返回的值$没有没有undefined属性的值(即 - 它返回)href,导致 JavaScript 错误
于 2012-05-01T01:09:24.473 回答
1

该代码不起作用,因为在您的示例中 $ 对象不存在并且会导致错误。似乎您正在尝试使用像 jQuery ($ object) 这样的 JavaScript 框架,但您忘记包含它。

尝试添加以下脚本标签:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

如果您想使用 jQuery,您还应该通过 .attr("attrname") 函数访问属性。例如

var a = $('#mylink').attr('href');

同样,如果您想使用 jQuery,您必须将选择器从“mylink”更改为“#mylink”,以指定您正在搜索 id 为“mylink”的元素。

于 2012-05-01T01:16:03.017 回答
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 的浏览器具有替代内容。

于 2012-05-01T01:14:10.483 回答
0

它不起作用,因为a=$('mylink').href无法执行并停止执行以下代码。代码document.write(document.links[0])是正确的。当您在没有先前错误行的情况下调用它时,它就可以工作。

我认为在第一行中您正在尝试使用 jQuery 库。如果你想这样做,你需要使用<script>标签包含 jQuery 库,然后使用以下代码:

document.write($('a:first').attr("href"));
于 2012-05-01T01:14:51.620 回答
0

只需删除 jQuery 的东西,你不需要它。正如您已经发现的那样,有一个document.links集合,因此如果您想打印文档中第一个链接的 herf 值:

document.write(document.links[0].href)

你就完成了。

于 2012-05-01T02:37:49.577 回答