使用jquery获取span元素后的文本

p8h8hvxi  于 2023-01-16  发布在  jQuery
关注(0)|答案(4)|浏览(199)

我有这个html代码

<div id="mydiv">
    <div>
        <span>Text inside span</span>
        Text next to span
    </div>
    <div>
        Contents inside the 2nd div element...
    </div>
</div>

我想得到**“文本旁边的跨度”**。我尝试了这个代码JQuery代码

var a = $('#mydiv div').first().find('span').parent().text();
alert(a);

上面jquery代码的输出如下所示:

Text inside span
Text next to span

要只获取**“Text next to span”**,正确的做法应该是什么?

pqwbnv8z

pqwbnv8z1#

var a = $('#mydiv div').first().contents().filter(function() {
    return this.nodeType == 3;
}).text();

这将获取所选div的内容,并过滤匹配的集合,只返回包含nodeType == 3的元素,这些元素是文本节点。

yfjy0ee7

yfjy0ee72#

我是这么想的:

$('#mydiv div').first().contents().eq(1).text();
oymdgrw7

oymdgrw73#

使用此代码:

$('#myDiv')
  .contents()
  .filter(function() {
    return this.nodeType == Node.TEXT_NODE;
  }).text();
cl25kdpy

cl25kdpy4#

使用Node.nextSibling

let jqElt_SearchRegion = $('#mydiv div').first();
let jqElt_SearchPoint = jqElt_SearchRegion.find('span');

let node_Sibling = jqElt_SearchPoint[0].nextSibling; // https://developer.mozilla.org/en-US/docs/Web/API/Node/nextSibling
console.log(node_Sibling.textContent); // Text next to span.
  • (如果jQuery不是严格要求)*

相关问题