Domanda

Ho bisogno di Reask mia vecchia domanda, probabilmente sognerei hanno chiesto che alle 1 del mattino: P

Sembra che alcuni attributi non sono stati trovati usando selettore di attributo di jQuery:

$("*[some=value]");

Finora sembra che i cant uso attributo di azione del modulo, e l'attributo src di IMG. Esiste una lista di attributi da qualche parte che non funzionano in modo che io possa scrivere selettori personalizzati per loro?

Grazie ancora!


Modifica Nessuno sembra credere che alcuni selettori non funzionano come previsto. Guarda questo esempio: Su questo sito (che ha jQuery 1.3 su di esso per firebugging) c'è una forma che assomiglia in questo modo:

<form style="display: inline;" method="get" action="list">

(discesa sue attorno alla 'ricerca corrente download'). Se si apre Firebug e provare questo selettore:

$("form[action=list]"); 

non sarà in grado di selezionare la forma. Non c'è niente di speciale l'attributo action. Lo stesso vale per lo src dell'immagine logo su quella pagina:

<img alt="Logo" src="/p/aost/logo?logo_id=1238551994"/>

Il selettore che non funziona è il seguente:

$("img[src=/p/aost/logo?logo_id=1238551994");

Certo, non posso fare jolly corrisponde, questo non è quello che sono dopo.

È stato utile?

Soluzione

Non c'è un "elenco" di attributi non supportati, perché non dovrebbe esserci; questo è un bug in jQuery.

Ecco i biglietti aperti su questo:

A quanto pare il denominatore comune tra gli insetti è che jQuery è confrontare la stringa di selezione specificata contro l'URL completo in contrasto con l'attributo di effettiva azione / src come è definito nel codice HTML. Questo spiega perché la attributeEndsWith o il attributeContains selettori funzionano in questo caso.

mi sento di raccomandare solo dando la forma / immagine di una classe / ID e ottenere finita.

Altri suggerimenti

Tutto dipende da quale versione di jQuery che si sta utilizzando.

Prima di 1.3, è possibile utilizzare la notazione @:

$("*[@name=value]")

Quindi, forse aggiungendo @ aiuta.

Oltre a questo, è necessario immettere il valore di attributo esattamente lo stesso come è definito nel codice - per esempio se si sta cercando di trovare un'immagine con src="http://example.com/dog.jpg", non farlo perché non funziona:

$("img[src=dog.jpg")

come si cercherà di trovare le immagini con src uguale per "dog.jpg", non lo contengono.

Se si desidera attributi che definiscono solo parti di esso la ricerca, suggerirei la lettura del jQuery Selectors API pagina. Ad esempio, per ottenere tutte le immagini briciolo src contenente "dog.jpg", è possibile utilizzare:

$("img[src*=dog.jpg]")

Allo stesso modo, è possibile trovare gli elementi i cui attributi iniziare o terminare con valori specifici / stringhe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top