如何使用 javascript 创建链接?

IT技术 javascript jquery html dom hyperlink
2021-01-21 07:49:12

我有一个标题字符串和一个链接字符串。我不确定如何将两者放在一起以使用 Javascript 在页面上创建链接。任何帮助表示赞赏。

EDIT1:为问题添加更多细节。我试图弄清楚这一点的原因是因为我有一个 RSS 提要,并且有一个标题和 URL 列表。我想将标题链接到 URL 以使页面有用。

EDIT2:我正在使用 jQuery,但我对它完全陌生,不知道它在这种情况下会有所帮助。

6个回答
<html>
  <head></head>
  <body>
    <script>
      var a = document.createElement('a');
      var linkText = document.createTextNode("my title text");
      a.appendChild(linkText);
      a.title = "my title text";
      a.href = "http://example.com";
      document.body.appendChild(a);
    </script>
  </body>
</html>
plnkr.co/edit/mV7nOBIHa6hMNaVIPG75?p=preview我已经创建了一个 plunker 示例。
2021-03-20 07:49:12
这是使用 DOM 方法向页面添加锚标记的非常通用的示例。例如,appendChild 方法可以是列表元素、TD 或页面内的其他元素。请参阅:quirksmode.org
2021-03-21 07:49:12
@Nadu - 请停止编辑我的答案。如果你想说一个具体的事情,加上你自己的;如果它的“不同”不足以保证它的“不同”,那么它的不同就不足以保证进行编辑。
2021-04-01 07:49:12

使用 JavaScript

  1. var a = document.createElement('a');
    a.setAttribute('href',desiredLink);
    a.innerHTML = desiredText;
    // apend the anchor to the body
    // of course you can append it almost to any other dom element
    document.getElementsByTagName('body')[0].appendChild(a);
    
  2. document.getElementsByTagName('body')[0].innerHTML += '<a href="'+desiredLink+'">'+desiredText+'</a>';
    

    或者,正如@travis所建议的

    document.getElementsByTagName('body')[0].innerHTML += desiredText.link(desiredLink);
    
  3. <script type="text/javascript">
    //note that this case can be used only inside the "body" element
    document.write('<a href="'+desiredLink+'">'+desiredText+'</a>');
    </script>
    

使用 JQuery

  1. $('<a href="'+desiredLink+'">'+desiredText+'</a>').appendTo($('body'));
    
  2. $('body').append($('<a href="'+desiredLink+'">'+desiredText+'</a>'));
    
  3. var a = $('<a />');
    a.attr('href',desiredLink);
    a.text(desiredText);
    $('body').append(a);
    

在上面的所有示例中,您可以将锚点附加到任何元素,而不仅仅是“主体”,它desiredLink是一个变量,用于保存锚元素指向的地址,并且desiredText是一个变量,用于保存将在其中显示的文本锚元素。

为了避免 XSS,您应该在构建 HTML 时避免字符串连接 ( +) .innerHTML使用jQuery,.attr("href", desiredLink).text(desiredText)你想要的这里。
2021-03-16 07:49:12
我认为你唯一遗漏的是: document.getElementsByTagName('body')[0].innerHTML += desiredText.link(desiredLink);
2021-03-29 07:49:12

使用 JavaScript 创建链接:

<script language="javascript">
<!--
document.write("<a href=\"www.example.com\">");
document.write("Your Title");
document.write("</a>");
//-->
</script>

或者

<script type="text/javascript">
document.write('Your Title'.link('http://www.example.com'));
</script>

或者

<script type="text/javascript">
newlink = document.createElement('a');
newlink.innerHTML = 'Google';
newlink.setAttribute('title', 'Google');
newlink.setAttribute('href', 'http://google.com');
document.body.appendChild(newlink);
</script>

有几种方法:

如果您想使用原始 Javascript(没有像 JQuery 这样的帮助程序),那么您可以执行以下操作:

var link = "http://google.com";
var element = document.createElement("a");
element.setAttribute("href", link);
element.innerHTML = "your text";

// and append it to where you'd like it to go:
document.body.appendChild(element);

另一种方法是将链接直接写入文档:

document.write("<a href='" + link + "'>" + text + "</a>");
您可能应该避免使用 document.write stackoverflow.com/questions/4520440/...
2021-03-22 07:49:12
我也倾向于第一个选项,但也许使用 JQuery 来实现相同的效果(为了可读性和易于维护)。
2021-03-28 07:49:12
我绝对更喜欢第一个选项。+1 为此,但混合 JS 和 HTML 混合了内容和行为,这应该是分开的。过头了,这可能会导致维护噩梦。
2021-04-11 07:49:12

    <script>
      _$ = document.querySelector  .bind(document) ;

        var AppendLinkHere = _$("body") // <- put in here some CSS selector that'll be more to your needs
        var a   =  document.createElement( 'a' )
        a.text  = "Download example" 
        a.href  = "//bit\.do/DeezerDL"

        AppendLinkHere.appendChild( a )
        

     // a.title = 'Well well ... 
        a.setAttribute( 'title', 
                         'Well well that\'s a link'
                      );
    </script>

  1. “锚点对象”有自己的*(继承)* 属性,用于设置链接及其文本。所以只需使用它们。.setAttribute更通用,但您通常不需要它。a.title ="Blah"会做同样的,更清楚!那么需要.setAttribute的情况是这样的:var myAttrib = "title"; a.setAttribute( myAttrib , "Blah")

  2. 让协议保持打开状态。而不是HTTP: //example.com/path考虑只使用//example.com/path。检查 example.com 是否可以通过http:https:访问,但 95% 的站点都可以在这两个站点上运行。

  3. OffTopic:这与在 JS 中创建链接并不真正相关,但可能很高兴知道: 有时就像在 chromes dev-console 中一样,您可以使用$("body")而不是document.querySelector("body")A_$ = document.querySelector将在您第一次使用它时非法调用错误“尊重”您的努力那是因为分配只是“抓取” .querySelector(对 方法的引用)。随着.bind(...你还会涉及上下文(这里的document),你会得到一个对象认为会工作,你可能会期望它的方法。