3 に答える
HTMLアンカー要素「a」の「ハッシュ」属性を設定します
<a>要素(HTMLLinkElement)には、すでにDOMレベル0のhash
プロパティがあります。これは、window.location.hashのように使用され、要素のによって参照されるURLの最後にある「...#anchor」の部分を読み取ったり設定したりしますhref
。
a.hash
直接またはjQueryのattr()
ラッパーを介して設定すると、リンクのURLにアンカー名が設定されるだけです。DOMメソッドを呼び出すことで、実際の属性が必要であると意図的に言うことができa.setAttribute('hash', value)
ます。ただし、属性とプロパティを混乱させる長年のバグのため、IE6/7では機能しません。
これは、カスタムの非標準属性を要素に追加する際の問題の1つであり、既存の名前といつ衝突するかはわかりません。HTML5では、カスタム属性を「data-」で始まる名前に制限することをお勧めしますが、一般的には、可能であればデータを保存する別の方法を見つけるのが最善です。
おそらくあなたの問題は、タグhash
の属性がないことです。<a>
属性を探しているname
場合や、リンク内のハッシュを変更したいhref
場合は、リンクテキストを解析し、正規表現を使用してハッシュを置き換える必要があります。
ハッシュを設定するための別のオプション。これは、式が要素を返す場合にのみ機能します。これは、ハッシュが実際のdom要素のプロパティであるためです。
$(expr).each(function() {
this.hash = value;
});
タグがこれを使用しているかどうかをテストする必要がある場合
$(expr).is('a').each(function() {
this.hash = value;
});
実際にカスタム属性を追加したい場合は、dataメソッドを使用して値を追加することをお勧めします
$(expr).data('myHash', value);