2009-05-19 27 views
0

我叫我的 “向下” 的功能,但我得到使用1.6.1_rc2原型findElements querySelectorAll错误

这里的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; 

行是元素的dom引用。

原型追加#则该元素的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

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