javascript - js 怎麼只取得父元素的值而不要連子元素的值同時取得?
黄舟
黄舟 2017-06-26 10:50:49
0
10
737
<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>

只取得 Trouble Ticket 怎麼寫?謝謝

黄舟
黄舟

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

全部回覆(10)
某草草

最好還是加上個標籤給包住,方便取得

洪涛

雷雷

好的!

習慣沉默

先clone 元素,然後移除子元素,最後取得的是不包含子元素的文字

jQuery('.js-anviz-body').clone().children().remove().end().text()
我想大声告诉你

這個問題之前我也回答過類似的,這個文本在遍歷nodeChild的時候,是Text()的實例,可以參見我之前回答的問題:/q/10...

过去多啦不再A梦

加個span包住比較合理

曾经蜡笔没有小新

題主的問題理解起來應該是想取得所有屬於父元素但不屬於子元素的文字

  • 假設知道文字位置,那就簡單些,如果文字在一開始:

//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
  • 如果文字位置不確定,甚至有多個的時候,這個時候就要遍歷父元素的兒子元素,尋找所有節點屬性為文本的元素:

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

上面clone的方法好一點,萬一p標籤後面還有文字呢?
用firstChild只取了第一個文字節點,還要遍歷才能取到後面的文字節點。

大家讲道理
var content = $('.anviz-ellipsis').parent().html().replace(/<[\s\S]*>/g, '');
    console.log(content);
打印结果:
// Trouble Ticket

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程式碼:


    <script>
        var content = $('.anviz-ellipsis').parent().html().replace(/<[\s\S]*>/g, '');
        console.log(content);
    </script>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!