Bagaimana cara memilih elemen tautan hanya dari induk <ul>
dari daftar seperti ini?
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a>
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
Jadi di css ul li a
, tapi tidakul li ul li a
Terima kasih
jquery
html
css
css-selectors
aston
sumber
sumber
ul.find(">li");
jika Anda memiliki node "ul" sebagai objek JQuery dalam variabel ul.Setelah Anda memiliki ul awal, Anda dapat menggunakan children () , yang hanya akan mempertimbangkan turunan langsung dari elemen tersebut. Seperti yang ditunjukkan @activa, salah satu cara untuk memilih elemen root dengan mudah adalah dengan memberinya kelas atau id. Berikut ini mengasumsikan Anda memiliki ul root dengan id
root
.sumber
$('ul').first().children('li')
juga dapat digunakanSeperti yang dinyatakan dalam jawaban lain, metode paling sederhana adalah dengan mengidentifikasi elemen root secara unik (menurut ID atau nama kelas) dan menggunakan pemilih keturunan langsung.
Namun, saya menemukan pertanyaan ini untuk mencari solusi yang akan bekerja pada elemen yang tidak disebutkan namanya di berbagai kedalaman DOM.
Ini dapat dicapai dengan memeriksa setiap elemen, dan memastikannya tidak memiliki induk dalam daftar elemen yang cocok. Inilah solusi saya , dibungkus dengan 'paling atas' pemilih jQuery.
Memanfaatkan ini, solusi untuk posting asli adalah:
JsFiddle lengkap tersedia di sini .
sumber
:topmost
- coba gunakan.parentElement.closest(selector)
. Seperti biasa, IE + Edge adalah satu-satunya yang tidak mendukungnya> :-( jadi inilah polyfill pastebin.com/JNBk77VmCukup Anda dapat menggunakan ini ..
Lihat contoh: https://codepen.io/gmkhussain/pen/XzjgRE
sumber
Anda mungkin ingin mencoba ini jika hasil masih mengalir ke turunan, dalam banyak kasus JQuery masih berlaku untuk turunan.
Menggunakan metode ini: E> F Mencocokkan semua elemen F yang merupakan turunan dari elemen E.
Memberi tahu JQuery untuk hanya mencari turunan eksplisit. http://www.w3.org/TR/CSS2/selector.html
sumber
Anda juga dapat menggunakan
$("ul li:first-child")
untuk hanya mendapatkan anak langsung dari UL.Saya setuju, Anda memerlukan ID atau sesuatu yang lain untuk mengidentifikasi UL utama jika tidak maka hanya akan memilih semuanya. Jika Anda memiliki div dengan ID di sekitar UL, hal termudah untuk dilakukan adalah
$("#someDiv > ul > li")
sumber
:first-child
. Ini akan memilih "yang pertamali
dari setiapul
". Posting asli meminta "setiapli
dari yang pertamaul
."Coba ini:
sumber
Saya mengalami masalah dengan kelas bersarang dari kedalaman apa pun jadi saya menemukan ini. Ini akan memilih hanya level pertama yang ditemuinya dari Objek Jquery yang mengandung:
sumber
1
mungkin ada banyak cara lain
sumber
.form-item kedua pada anak tingkat pohon dari .add_to_cart
sumber