Mają kolumnę tabeli, którą próbuję rozwinąć i ukryć:
jQuery wydaje się ukrywać td
elementy, gdy wybieram je według klasy, ale nie według nazwy elementu .
Na przykład dlaczego:
$(".bold").hide(); // selecting by class works
$("tcol1").hide(); // select by element name does not work
Uwaga HTML poniżej, druga kolumna ma taką samą nazwę dla wszystkich wierszy. Jak mogę utworzyć tę kolekcję za pomocą name
atrybutu?
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
Odpowiedzi:
Możesz użyć selektora atrybutów jQuery :
źródło
$("td:not([name='tcol1'])")
na przykład selektora: not . Widać to na skrzypcachDowolny atrybut można wybrać przy użyciu
[attribute_name=value]
sposobu. Zobacz próbkę tutaj :źródło
var value = $("[name=nameofobject]");
<input name="itemid[]">
. Tak więc ta odpowiedź działała lepiej niż odpowiedź zaakceptowana, dzięki odpowiedniemu wykorzystaniu cytatów.Jeśli masz coś takiego:
Możesz przeczytać wszystko w ten sposób:
Fragment:
źródło
Możesz uzyskać tablicę elementów po nazwie w staroświecki sposób i przekazać tę tablicę do jQuery.
Uwaga: jedynym powodem, dla którego warto użyć atrybutu „nazwa”, powinno być pole wyboru lub wejście radiowe.
Lub możesz po prostu dodać kolejną klasę do elementów do selekcji. (Tak bym zrobił)
źródło
Możesz uzyskać wartość nazwy z pola wejściowego za pomocą elementu name w jQuery poprzez:
źródło
Szkielety zwykle używają nazw nawiasów w formularzach, takich jak:
Można uzyskać do nich dostęp poprzez:
źródło
Zrobiłem tak i działa:
https://api.jquery.com/attribute-equals-selector/
źródło
Oto proste rozwiązanie:
$('td[name=tcol1]')
źródło
Zapomniałeś drugiego zestawu cytatów, co powoduje, że zaakceptowana odpowiedź jest niepoprawna:
źródło
'td[name="nested[fieldName]"]'
Możesz uzyskać element w JQuery, używając jego atrybutu ID w następujący sposób:
źródło
Jako selektora możesz użyć dowolnego atrybutu
[attribute_name=value]
.źródło
Osobiście to, co zrobiłem w przeszłości, daje im wspólny identyfikator klasy i użyłem go do ich wyboru. Może nie być idealny, ponieważ mają określoną klasę, która może nie istnieć, ale znacznie ułatwia wybór. Upewnij się tylko, że jesteś wyjątkowy w swoich nazwach klas.
tzn. w powyższym przykładzie użyłbym twojego wyboru według klasy. Jeszcze lepiej byłoby zmienić nazwę klasy z pogrubionej na „tcol1”, aby nie uzyskać żadnych przypadkowych inkluzji w wynikach jQuery. Jeśli pogrubienie faktycznie odnosi się do klasy CSS, zawsze możesz podać oba we właściwości class - tj. „Class =" tcol1 pogrubiony ”.
Podsumowując, jeśli nie możesz wybrać według nazwy, użyj skomplikowanego selektora jQuery i zaakceptuj wszelkie powiązane wyniki wydajności lub użyj selektorów klasy.
Zawsze możesz ograniczyć zakres jQuery, włączając nazwę tabeli, tj. $ ('# TableID> .bold')
To powinno ograniczyć jQuery do przeszukiwania „świata”.
Nadal można go zaklasyfikować jako skomplikowany selektor, ale szybko ogranicza wyszukiwanie w tabeli o identyfikatorze „#tableID”, więc ogranicza przetwarzanie do minimum.
Alternatywą tego, jeśli szukasz więcej niż 1 elementu w # table1, byłoby sprawdzenie tego osobno, a następnie przekazanie go do jQuery, ponieważ ogranicza to zakres, ale oszczędza trochę przetwarzania, aby wyszukać za każdym razem.
źródło
Możesz użyć funkcji:
źródło
get.elementbyId()
? Miałeś na myślidocument.getElementById()
?