javascript - 要件に従って URL を比較するには、どのように href 属性にアクセスしますか?
4 に答える
次の点を考慮してください。
for
ループではではi < mainarticle.length
なくi <= mainarticle.length
. 定義されている現在のfor
ループは、 の境界から抜け出しますmainarticle
。- ループを見ている間
for
...変数を宣言して保存することをお勧めします。これにより、各反復mainarticle.length
でプロパティのルックアップを行わなくなります: .length
for (var i = 0, l = mainarticle.length; i < l; i++)
href
はアンカー DOM 要素のプロパティであるため、そのように参照するだけです:current_article.firstChild.attributes.href
の代わりにcurrent_article.firstChild.attributes[href]
.var theParagraph = getElementsByClassName('catg_list');
そのクラス名を持つすべてのDOM 要素を取得するため、theParagraph
実際には 3 つの要素のノード コレクションです。- とにかく、あなたはすでにあなたが探している要素を持っています. 変数に割り当てた
current_article
ので、使用するだけcurrent_article.id = 'aaaa';
です。
current_article.firstChild.attributes[href]
current_article.firstChild.attributes['href']
または_current_article.firstChild.attributes.href
使用する必要があります
current_article.firstChild.attributes.href.value or
current_article.firstChild.attributes.href.nodeName or
current_article.firstChild.attributes.href.name
(他にもあります)
それ以外の
current_article.firstChild.attributes.href
それだけ
あなたのコードで:
> for (var i = 0; i <= mainarticle.length; i++) {
> var current_article = mainarticle[i];
> if (url_string == current_article.firstChild.attributes[href]) {
要素の attributes プロパティはNamedNodeMapを返します。プロパティには名前でアクセスできますが、正しい構文を使用する必要があります。角括弧表記を使用してhrefという名前の属性を取得するには:
current_article.firstChild.attributes['href'];
ドット表記を使用するには (href は有効な識別子であるため許可されます)、より便利な場合があります。
current_article.firstChild.attributes.href;
しかし、それは属性ノードを返すだけです。実際の値が必要な場合:
current_article.firstChild.attributes.href.value;
しかし、それはすべて大変な作業のように思えます。プロパティに直接アクセスして値を取得してみませんか?
current_article.firstChild.href;
> var theParagraph = getElementsByClassName('catg_list');
getElementsByClassNameは、ドキュメントおよび要素インターフェイスのメソッドです (最初は HTML5 で標準化されましたが、現在は DOM 4 コアに移動されています)。
var theParagraph = document.getElementsByClassName('catg_list');
.
> theParagraph.setAttribute('id', 'aaaa');
しかし、 getElementsByClassName はライブHTML コレクション( NodeListのタイプ) を返しますが、 setAttributeメソッドはありません。ただし、インデックスでメンバーにアクセスできます。要素が 1 つだけ返されると予想される場合は、インデックス 0 になり、次を使用して id プロパティを設定できます。
theParagraph[0].id = 'aaa';
編集
href プロパティにアクセスします。
<a href="http://www.google.com" onclick="
return confirm('Do you really want to go to ' + this.href + '?')
">Google</a>