2009-05-19 4 views
0

iが "ダウン" 関数を呼び出していますが、ここでプロトタイプfindElements querySelectorAllエラー

1.6.1_rc2は、HTMLスニペットです使用して、無効な引数取得しています:

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

<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> 

をコードです

行は要素へのdom参照です。私は、「無効な引数」エラーが出る

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); 
    } 

プロトタイプは、その要素のIDを#を付加していますか?

違反行の前にブレークポイントを置き、eを "span.SynDesc"と同じに変更すると正常に動作します。

help。 :)

答えて

1

私はこれに遭遇しました。レターで始まるようにTRのIDを変更すると、問題が解決するはずです。正当なHTML IDは/^[A-Za-z][A-Za-z0-9_:.-]*$/と一致しています。