Bagaimana saya bisa mendapatkan semua elemen tr tanpa atribut id?
<tr id="name">...</tr>
<tr>...</tr>
<tr>...</tr>
Terima kasih
Jawaban:
Cukup mudah:
//tr[not(@id) and not(@class)]
Itu akan memberi Anda semua tr
elemen yang kekurangan keduanya id
dan class
atribut. Jika Anda ingin semua tr
elemen kekurangan salah satu dari keduanya, gunakan or
sebagai pengganti and
:
//tr[not(@id) or not(@class)]
Jika atribut dan elemen digunakan dengan cara ini, jika atribut atau elemen memiliki nilai, atribut atau elemen tersebut diperlakukan seolah-olah benar. Jika tidak ada maka diperlakukan seolah-olah itu salah.
Jika Anda mencari elemen yang memiliki kelas a
tetapi tidak memiliki kelas b
, Anda dapat melakukan hal berikut.
//*[contains(@class, 'a') and not(contains(@class, 'b'))]
Atau jika Anda ingin memastikan tidak cocok sebagian.
//*[contains(concat(' ', normalize-space(@class), ' '), ' some-class ') and
not(contains(concat(' ', normalize-space(@class), ' '), ' another-class '))]
Bisakah kamu mencoba //tr[not(@id)]?
if (elm.hasAttribute('id')) {
//if id - implement here
} else if (elm.hasAttribute('class')) {
//if class - implement here
} else {
for (i = 1, sib = elm.previousSibling; sib; sib = sib.previousSibling) {
if (sib.localName == elm.localName)
i++;
};
segs.unshift(elm.localName.toLowerCase() + '[' + i + ']');
}