2009-05-19 2 views
0

내가 "아래로"함수를 호출하고 있습니다 그러나 여기프로토 타입 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를 A #을 추가한다?

문제가되는 줄 앞에 중단 점을 넣고 e를 "span.SynDesc"와 같게 변경하면 제대로 작동합니다.

help. :)

답변

1

나는 이것에 부딪쳤다. 문자로 시작하려면 TR의 ID를 변경하면 문제가 해결됩니다. 올바른 HTML ID는 /^[A-Za-z][A-Za-z0-9_:.-]*$/와 일치합니다.