web-dev-qa-db-ja.com

JavaScriptを使用してリンクを作成する方法

タイトルの文字列とリンクの文字列があります。 Javascriptを使用してページ上にリンクを作成するために2つを組み合わせる方法がわかりません。任意の助けは大歓迎です。

編集1:質問の詳細を追加する。これを理解しようとしているのは、RSSフィードがあり、タイトルとURLのリストがあるからです。ページを便利にするために、タイトルをURLにリンクします。

編集2:私はjQueryを使用していますが、まったく新しいものであり、この状況で役立つ可能性があることに気付いていませんでした。

105
Xavier
<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>
207
Jared Farrish

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);
    

上記のすべての例では、 'body'だけでなく任意の要素にアンカーを追加できます。また、desiredLinkは、アンカー要素が指すアドレスを保持する変数です。また、desiredTextは、アンカー要素に表示されるテキストを保持する変数。

54
gion_13

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>
15
Naveed

いくつかの方法があります。

生の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);

もう1つの方法は、リンクをドキュメントに直接書き込むことです。

document.write("<a href='" + link + "'>" + text + "</a>");
11
Roopinder
    <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でリンクを作成することはあまり関係ありませんが、知っておくと良いかもしれません:クロムの開発コンソールのように、$("body")の代わりにdocument.querySelector("body")を使用できる場合があります。_$ = document.querySelectorは、最初の使用時に不正な呼び出しエラーが発生しました。これは、割り当てが単に「グラブ」。querySelectorclassメソッドの参照)であるためです。 .bind(...を使用すると、コンテキストも関与し(ここではdocumentです)、期待どおりに機能するobjectメソッドを取得します。

4
Nadu

生のJavaScriptでハイパーリンクを動的に作成します。

   var anchorElem = document.createElement('a');
   anchorElem.setAttribute("href", yourLink);
   anchorElem.innerHTML = yourLinkText;

   document.body.appendChild(anchorElem); // append your new link to the body
3
jmort253