2009-05-19 5 views
0

Ich bin die "down" Funktion aufrufen, aber bin immer ein ungültiges Argument 1.6.1_rc2Prototyp findElements querySelectorAll Fehler

hier ist der HTML-Schnipsel:

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

hier ist der Code:

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

Zeile ist eine Domreferenz auf das Element.

Prototyp ist das Anhängen eines # dann die ID des Elements:

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

i ein "ungültiges Argument" Fehlermeldung erhalten?

Wenn ich einen Haltepunkt vor der beanstandeten Zeile setzen und e ändern, um gleich "span.SynDesc" zu sein, funktioniert es gut.

Hilfe. :)

Antwort

1

Ich lief darin. Das Ändern der TR-ID, um mit einem Buchstaben zu beginnen, sollte das Problem beheben. Es stellt sich heraus, dass legale HTML-IDs mit /^[A-Za-z][A-Za-z0-9_:-]*$/ übereinstimmen.

Verwandte Themen