Rumah > hujung hadapan web > tutorial js > js jquery mendapat tahap adik-beradik elemen semasa sebelum elemen_jquery seterusnya

js jquery mendapat tahap adik-beradik elemen semasa sebelum elemen_jquery seterusnya

WBOY
Lepaskan: 2016-05-16 15:41:19
asal
1378 orang telah melayarinya

var chils= s.childNodes; //Dapatkan semua nod anak s

var par=s.parentNode; //Dapatkan nod induk s

var ns=s.nextSbiling; //Dapatkan nod adik beradik seterusnya s

var ps=s.previousSbiling; //Dapatkan nod adik beradik sebelumnya bagi s

var fc=s.firstChild; //Dapatkan nod anak pertama s

var lc=s.lastChile; //Dapatkan nod anak terakhir s

JS mendapat induk nod, elemen anak

Mari kita bincangkan dahulu tentang kaedah pemerolehan JS, yang jauh lebih menyusahkan daripada kaedah JQUERY Kaedah JQUERY akan digunakan untuk perbandingan kemudian.

Kaedah JS jauh lebih menyusahkan daripada JQUERY, terutamanya kerana penyemak imbas FF akan menganggap pemisah baris anda sebagai elemen DOM

<div id="test">
<div></div>
<div></div>
</div>
Salin selepas log masuk

JS asli mendapat elemen anak di bawah elemen dengan ujian ID.

Boleh digunakan:

var a = docuemnt.getElementById("test").getElementsByTagName_r("div"); 
Salin selepas log masuk

Ini tiada masalah

Pada masa ini a.length=2;

Tapi kalau kita guna kaedah lain

var b =document.getElementByIdx_x("test").childNodes; 
Salin selepas log masuk

Pada masa ini, b.length tiada masalah dalam pelayar IE, ia masih sama dengan 2, tetapi dalam pelayar FF, ia akan menjadi 4, kerana FF juga menganggap pemisah baris sebagai elemen.

Jadi, di sini, kami akan melakukan pemprosesan Kami perlu melintasi elemen ini dan memadam semua elemen yang merupakan ruang dan teks.

function del_ff(elem){
var elem_child = elem.childNodes;
for(var i=0; i<elem_child.length;i++){
if(elem_child[i].nodeName == "#text" && !/\s/.test(elem_child.nodeValue))
{elem.removeChild(elem_child)
}
}
}
Salin selepas log masuk

Fungsi di atas merentasi elemen anak Apabila terdapat jenis nod dalam elemen iaitu teks dan nilai nod bagi nod jenis teks adalah kosong. Padamkan sahaja dia.

nodeNames boleh mendapatkan jenis nod nod, /s/ ialah ungkapan biasa bagi aksara bukan kosong dalam JS. Tambah di hadapan! , ia bermaksud watak kosong

Kaedah test() digunakan untuk menyemak sama ada rentetan sepadan dengan corak tertentu Sintaksnya ialah: RegExpObject.test(string)

Mengembalikan benar jika rentetan rentetan mengandungi teks yang sepadan dengan RegExpObject, jika tidak mengembalikan palsu.

nodeValue bermaksud mendapatkan nilai dalam nod ini.

removeChild memadamkan elemen anak unsur tersebut.

Selepas itu, sebelum memanggil harta anak, ayah, abang, panggil sahaja fungsi di atas untuk mengosongkan ruang

<div id="test">
<div></div>
<div></div>
</div>

<script>
function dom() {
var s= document.getElementByIdx_x("test");
del_ff(s);  //清理空格
var chils= s.childNodes; //得到s的全部子节点
var par=s.parentNode;  //得到s的父节点
var ns=s.nextSbiling;  //获得s的下一个兄弟节点
var ps=s.previousSbiling; //得到s的上一个兄弟节点
var fc=s.firstChild;  //获得s的第一个子节点
var lc=s.lastChile;  //获得s的最后一个子节点
}
</script>

Salin selepas log masuk

Yang berikut memperkenalkan kaedah JQUERY untuk mencari nod ibu bapa, anak dan adik beradik

jQuery.parent(expr) Untuk mencari nod induk, anda boleh memasukkan expr untuk penapisan, seperti $("span").parent() atau $("span").parent(".class")

jQuery.parents(expr), serupa dengan jQuery.parents(expr), tetapi mencari semua elemen nenek moyang, tidak terhad kepada elemen induk

jQuery.children(expr). Mengembalikan semua nod anak Kaedah ini hanya akan mengembalikan nod anak langsung dan tidak akan mengembalikan semua nod turunan

jQuery.contents(), mengembalikan semua kandungan di bawah, termasuk nod dan teks. Perbezaan antara kaedah ini dan kanak-kanak() ialah memasukkan teks kosong juga akan dianggap sebagai

Objek jQuery dikembalikan, children() hanya akan mengembalikan nod

jQuery.prev(), mengembalikan nod adik beradik sebelumnya, bukan semua nod adik beradik

jQuery.prevAll(), mengembalikan semua nod adik beradik sebelumnya

jQuery.next(), mengembalikan nod adik beradik seterusnya, bukan semua nod adik beradik

jQuery.nextAll(), mengembalikan semua nod adik beradik seterusnya

jQuery.siblings(), mengembalikan nod adik-beradik, tidak kira depan atau belakang

jQuery.find(expr) berbeza sama sekali daripada jQuery.filter(expr). jQuery.filter() menapis sebahagian daripada koleksi awal objek jQuery, manakala jQuery.find()
Hasil pemulangan tidak akan mengandungi kandungan dalam koleksi awal Contohnya, $("p"), find("span") bermula daripada elemen

, yang bersamaan dengan $(. "p span" )

Pengenalan di atas adalah tentang js jquery mendapatkan tahap adik-beradik elemen semasa Seterusnya Saya harap ia akan membantu semua orang.

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan