protótipo de erro findElements querySelectorAll

votos
0

eu estou chamar a função para baixo, mas estou recebendo um argumento inválido usando 1.6.1_rc2

aqui está o trecho de 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>

aqui está o código:

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

linha é uma referência DOM para o elemento.

protótipo é anexando um #, em seguida, o id do elemento:

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

eu recebo um erro inválido argumento?

se eu colocar um ponto de interrupção antes da linha ofensiva e mudança e para ser igual a span.SynDesc ele funciona bem.

Socorro. :)

Publicado 19/05/2009 em 16:54
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Corri para este. Alterar ID da TR para começar com uma letra deve resolver o problema. Acontece que IDs HTML legais corresponder /^[A-Za-z][A-Za-z0-9_:.-]*$/.

Respondeu 30/07/2009 em 18:20
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more