原型findElements querySelectorAll错误

时间:2009-05-19 15:54:01

标签: prototypejs

我正在调用“向下”功能但是使用1.6.1_rc2

得到了无效的参数

这是html片段:

<TR id=000000214A class="activeRow searchResultsDisplayOver" conceptID="0000001KIU">
    <TD>
        <DIV class=gridRowWrapper>
            <SPAN class=SynDesc>Asymmetric breasts</SPAN> 
            <DIV class=buttonWrapper>
                <SPAN class=btnAddFav title="Add to Favorites">&nbsp;</SPAN> 
            </DIV>
        </DIV>
    </TD>
</TR>

这是代码:

var description = row.down('span.SynDesc').innerHTML;

row是元素的dom引用。

prototype会追加一个#然后是元素的id:

findElements: function(root) {
    root = root || document;
    var e = this.expression, results;

    switch (this.mode) {
      case 'selectorsAPI':
        if (root !== document) {
          var oldId = root.id, id = $(root).identify();
          id = id.replace(/[\.:]/g, "\\$0");
          e = "#" + id + " " + e;
        }

        results = $A(root.querySelectorAll(e)).map(Element.extend); <-- e = "#000000214A span.SynDesc"
        root.id = oldId;

        return results;
      case 'xpath':
        return document._getElementsByXPath(this.xpath, root);
      default:
       return this.matcher(root);
    }

我收到“无效参数”错误?

如果我在违规行之前放置一个断点并将e改为等于“span.SynDesc”,那么它可以正常工作。

帮助。 :)

1 个答案:

答案 0 :(得分:1)

我碰到了这个。将TR的ID更改为以字母开头应该可以解决问题。事实证明合法的HTML ID匹配/ ^ [A-Za-z] [A-Za-z0-9 _:.-] * $ /。

相关问题