选择没有孩子的孩子

时间:2019-07-17 08:06:15

标签: javascript jquery html dom

如何使用jquery或纯JavaScript仅选择mpWiFiScan = new clsWiFiScan(); mpWiFiScan->moveToThread(QApplication::instance()->thread()); mpWiFiScan->setParent(this); //Connect slot to scan signal connect(mpWiFiScan, SIGNAL(scanResultsReady(QString)) ,this, SLOT(networkScanResults(QString))); mpWiFiScan->setScanState(SS_SCAN); mpWiFiScan->start(); 符号作为字符串?

我不知道该怎么做。

-

3 个答案:

答案 0 :(得分:2)

使用jQuery,您可以使用contents,而-将是使用first选择器获得的第一个节点。

const div = $(".container");
const node = div.contents().first();
console.log(node.text().trim())
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  -
  <div class="amount">
    $3
  </div>
</div>

如果要将文本节点替换为其他文本或html元素,则可以使用replaceWith jquery方法。

const div = $(".container");
const node = div.contents().first()

const newEl = $('<span>', {
  text: node.text().trim() + ' update',
  style: "color: red;"
})

node.replaceWith(newEl)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  -
  <div class="amount">
    $3
  </div>
</div>

答案 1 :(得分:0)

访问childNode中的第一个.container

console.log(document.querySelector('.container').childNodes[0]);
<div class="container">
    -
    <div class="amount">
        $3
    </div>
</div>

答案 2 :(得分:-2)

如果您想确保准确获得内容,而又不选择父div的其他子级,我建议您这样做:

    var content = $("#targetDiv")
                      .clone()    //copy your div
                      .children() //get all its children
                      .remove()   //destroy the children
                      .end()  //select the element again(now it doesn't have children)
                      .text() //get the text of your div;
        
    console.log(content);
<div class="container" id="targetDiv">
  -
  <div class="amount">
    $3
  </div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

检查代码段,看看它是否有效。