Rumah  >  Artikel  >  hujung hadapan web  >  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
WBOYasal
2016-05-16 15:41:191325semak imbas

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>

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

Boleh digunakan:

var a = docuemnt.getElementById("test").getElementsByTagName_r("div"); 

Ini tiada masalah

Pada masa ini a.length=2;

Tapi kalau kita guna kaedah lain

var b =document.getElementByIdx_x("test").childNodes; 

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)
}
}
}

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>

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 e388a4556c0f65e1904146cc1a846bee, 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.

Kenyataan:
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