javascript - js Bagaimana untuk mendapatkan hanya nilai elemen induk dan bukannya nilai elemen anak pada masa yang sama?
黄舟
黄舟 2017-06-26 10:50:49
0
10
811
<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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(10)
某草草

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

过去多啦不再A梦

Lebih munasabah untuk menambah span untuk menutupnya

大家讲道理
<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']
ringa_lee

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);
打印结果:
// 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>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan