0
4

4 回答 4

1

考虑以下:

  1. for循环中使用i < mainarticle.length而不是i <= mainarticle.length. 您当前for定义的循环将使您脱离mainarticle.
  2. 当我们查看for循环时...我建议声明一个要存储的变量,mainarticle.length这样您就不会在length每次迭代时都查找属性:for (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');抓取具有该类名的每个theParagraphDOM 元素,因此实际上是三个元素的节点集合。
  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方法。您可以通过索引访问成员。如果您希望只返回一个元素,它将位于索引 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 回答