<p class="mui-media-body js-media-body js-anviz-body">Trouble Ticket
<p class="anviz-ellipsis js-des">You can sumbit your trouble and …</p>
</p>
Bagaimana cara menulis hanya untuk mendapatkan Tiket Masalah? Terima kasih
人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!
Sebaik-baiknya tambahkan label untuk membungkusnya untuk akses mudah
var val = jQuery(this).find('.js-anviz-body')[0].firstChild.data;
OK!
Mula-mula klon elemen, kemudian alih keluar elemen kanak-kanak, dan akhirnya dapatkan teks tanpa elemen kanak-kanak
jQuery('.js-anviz-body').clone().children().remove().end().text()
document.querySelector('.mui-media-body').firstChild.nodeValue
Saya telah menjawab soalan yang sama sebelum ini Semasa melintasi nodeChild, teks ini adalah contoh Text()
Anda boleh merujuk kepada soalan yang saya jawab sebelum ini: /q/10...
<html>
<head>
<title></title>
<style type="text/css">
.parent{
width:100px;
height:100px;
}
.child{
width:100px;
height:50px;
}
</style>
</head>
<body>
<p class="parent">
hello world,
<p class="child">welcome!</p>
</p>
<script>
var text = document.querySelector('.parent').firstChild.nodeValue;
console.log(text);
</script>
</body>
</html>
Untuk memahami soalan, anda mungkin ingin mendapatkan semua teks yang dimiliki oleh elemen induk tetapi bukan elemen anak
Andaikan anda tahu kedudukan teks, ia lebih mudah, jika teks berada di permulaan:
//pp = """<p class="mui-media-body js-media-body js-anviz-body">Trouble Ticket
<p class="anviz-ellipsis js-des">You can sumbit your trouble and …</p>
</p>"""
var childNodes = pp.childNodes;
var text = childNodes[0]; // Trouble Ticket
Jika kedudukan teks tidak pasti, atau terdapat berbilang, maka adalah perlu untuk melintasi elemen anak elemen induk dan mencari semua elemen yang atribut nodnya ialah teks:
//pp = """<p class="mui-media-body js-media-body js-anviz-body">
Trouble Ticket
<p class="anviz-ellipsis js-des">You can sumbit your trouble and …</p>
Trouble Ticket2
</p>"""
var childNodes = pp.childNodes;
var textNodes = [];
childNodes.forEach(function(node){
if (node.nodeType === 3) {
textNodes.push(node);
} // 3 為 文本
});
//textNodes === ['Trouble Ticket', 'Trouble Ticket2']
Kaedah klon di atas adalah lebih baik Bagaimana jika ada teks di sebalik tag p?
Menggunakan firstChild hanya mendapat nod teks pertama, dan ia perlu dilalui untuk mendapatkan nod teks berikutnya.
var content = $('.anviz-ellipsis').parent().html().replace(/<[\s\S]*>/g, '');
console.log(content);
打印結(jié)果:
// Trouble Ticket
kod html:
<p class="mui-media-body js-media-body js-anviz-body">Trouble Ticket
<p class="anviz-ellipsis js-des">
You can sumbit your trouble and …
<!-- 混淆代碼1 start-->
<p>sdkfjfjfdlkfjsld</p>
<a href="">3w33333</a>
<!-- 混淆代碼1 end-->
</p>
<!-- 混淆代碼2 start-->
<img src="" alt="">
<a href="">sdfsjflsjdflskdjf</a>
<p>
</p>
<!-- 混淆代碼2 end-->
</p>
js kod:
<script>
var content = $('.anviz-ellipsis').parent().html().replace(/<[\s\S]*>/g, '');
console.log(content);
</script>