0
4

4 に答える 4

1

次の点を考慮してください。

  1. forループではではi < mainarticle.lengthなくi <= mainarticle.length. 定義されている現在のforループは、 の境界から抜け出しますmainarticle
  2. ループを見ている間for...変数を宣言して保存することをお勧めします。これにより、各反復mainarticle.lengthでプロパティのルックアップを行わなくなります: .lengthfor (var i = 0, l = mainarticle.length; i < l; i++)
  3. hrefはアンカー DOM 要素のプロパティであるため、そのように参照するだけです:current_article.firstChild.attributes.hrefの代わりにcurrent_article.firstChild.attributes[href].
  4. var theParagraph = getElementsByClassName('catg_list');そのクラス名を持つすべてのDOM 要素を取得するため、theParagraph実際には 3 つの要素のノード コレクションです。
  5. とにかく、あなたはすでにあなたが探している要素を持っています. 変数に割り当てたcurrent_articleので、使用するだけcurrent_article.id = 'aaaa';です。
于 2012-06-26T11:45:35.750 に答える
1

current_article.firstChild.attributes[href]current_article.firstChild.attributes['href']または_current_article.firstChild.attributes.href

于 2012-06-26T10:45:24.007 に答える
0

使用する必要があります

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

それだけ

于 2013-09-29T01:05:21.787 に答える
0

あなたのコードで:

> 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>
于 2012-06-26T11:15:45.147 に答える