hrefJavaScriptを使用して動的にリンクに属性を追加するにはどうすればよいですか?
基本的に、href属性を<a></a>動的に追加したい(つまり、ユーザーがWebサイトの特定の画像をクリックしたとき)。
だからから:
<a>Link</a>
私は行く必要があります:
<a href="somelink url">Link</a>
回答:
var a = document.getElementById('yourlinkId'); //or grab it by tagname etc
a.href = "somelink url"
HTMLLinkElementなどの特定のフィールドの設定をサポートするで定義されたメソッドがありますhref。参照せずに、どれを使用する必要がないかを確認する必要がありますsetAttribute。もう1つの例は<table>要素(HTMLTableElement)で、insertRow()を作成<tr>してテーブルに追加することなく、新しい行を挿入できます。
setAttribute()おりgetAttribute()、期待する動作を常に実行するとは限りません。stackoverflow.com/questions/4456231/…を
<a>要素のDOMオブジェクトを取得する方法(使用document.getElementByIdまたはその他のメソッド)を知っていると思います。
属性を追加するには、DOMオブジェクトでsetAttributeメソッドを使用します。
a = document.getElementById(...);
a.setAttribute("href", "somelink url");
setAttributeはわかりませんが(「特定の属性」は非常にあいまいです)、明らかに標準です(w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082)、 W3Cは、機能しない属性を定義していません。逆に、特定の属性名でプロパティを使用すると失敗することを保証できます。等tagName、及びsetAttribute-それら既にElementインタフェースのフィールド/メソッドです。属性のプロパティについて言及しているW3Cドキュメントのどこにも見当たりません。
tagName。カスタム属性について話していますか?
getAttributeおよびsetAttributeです。"tagName"プロパティとして機能できない属性の例です。HTMLを使用する場合、およびDOM HTML仕様で定義されている特定の属性についてのみ、プロパティを使用して属性を読み取り、割り当てることができます。
tagName あるの財産ElementHTMLとXMLのDOMの両方でのJavaScriptのオブジェクトは、あなたは経由要素のタグ名を取得することはできませんgetAttribute("tagName")(その実装のIE、を除いてgetAttribute()とsetAttribute()正確にあなたが言っているのと反対だ、壊れています)。
まず、に変更<a>Link</a>してみてください<span id=test><a>Link</a></span>。
次に、呼び出すJavaScript関数に次のようなものを追加します。
var abc = 'somelink';
document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>';
これにより、リンクは次のようになります。
<a href="somelink">Link</a>
href、既存の aタグにを追加する方法に関するもののようです(基本的に、<a> </a>にhref属性を動的に追加したい)。ただし、この回答は、でタグを作成する方法を説明しているようです。ahref
document.getElementById('link-id').href = "new-href";
私はこれが古い記事であることを知っていますが、これは一部の人々に適しているかもしれないワンライナーです。
setAttribute)。このアプローチが標準であるかどうか誰かが知っていますか?