/ / attributi non trovati dal selettore di attributi jquery - jquery, attributi, selettori di css, css3

attributi non trovati dal selettore di attributi jquery - jquery, attributi, selettori css, css3

ho bisogno di Reask la mia vecchia domanda, probabilmente non avrei dovuto chiederlo alle 1:00: P

Sembra che alcuni attributi non vengano trovati usando il selettore di attributi di jquery:

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

Finora sembra che non posso usare l'attributo action di form e l'attributo src di img. C'è una lista di attributi che non funzionano, quindi posso scrivere selettori personalizzati per loro?

Grazie ancora!


Modificare: Nessuno sembra credere che alcuni selettori non funzionino come previsto. Guarda questo esempio: Sopra questo sito (che ha jquery 1.3 su di esso per firebugging) c'è un modulo che assomiglia a questo:

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

(si trova sul menu a tendina "cerca i download correnti"). Se apri firebug e prova questo selettore:

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

NON sarai in grado di selezionare il modulo. Non c'è nulla di speciale nell'attributo action. Lo stesso vale per lo src dell'immagine del logo su quella pagina:

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

Il selettore che non funziona è:

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

Certo, posso fare fiammiferi, non è quello che sto cercando.

risposte:

11 per risposta № 1

Non esiste una "lista" di attributi non supportati perché non dovrebbe esserci, questo è un bug in jQuery.

Ecco i biglietti aperti su questo:

Apparentemente il comune denominatore tra ilbug è che jQuery sta confrontando la stringa del selettore specificata rispetto all'URL completo in opposizione all'attuale azione / src così come è definita nell'HTML. Questo spiega perché il attributeEndsWith o il attributeContains i selezionatori funzionano in questo caso.

Vorrei raccomandare semplicemente di dare alla forma / immagine una classe / ID e farla finita con.


4 per risposta № 2

Tutto dipende da quale versione di jQuery stai usando.

Prima di 1.3, puoi usare la notazione @:

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

Quindi forse aggiungendo @ aiuta.

Oltre a questo, dovresti inserire il valore dell'attributo Esattamente lo stesso come definito nel markup, ad esempio se stai cercando di trovare un'immagine con src="http://example.com/dog.jpg", non farlo perché non ha funzionato:

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

come tenterà di trovare le immagini con src pari a "dog.jpg", non contenendolo.

Se vuoi cercare attributi che definiscono solo parti di esso, ti suggerisco di leggere il Selettori API jQuery pagina. Ad esempio, per ottenere tutte le immagini con src contenente "dog.jpg", puoi usare:

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

Allo stesso modo, puoi trovare elementi i cui attributi iniziano o terminano con valori / stringhe specifici.