gpt4 book ai didi

javascript - 如何使用 jQuery 选择元素的自己的文本

转载 作者:太空狗 更新时间:2023-10-29 14:53:29 26 4
gpt4 key购买 nike

我有以下 html:

<div>
<div id="t1">Text1</div>
<div id="t2">
Text2
<ul id="t3">
<li id="t4">Text3</li>
</ul>
</div>
</div>

我想为每个元素选择仅自己的 文本。我尝试使用 jQuery text 函数,但它返回选择中所有元素的组合文本内容:

t1 => Text1
t2 => Text2 Text3
t3 => Text3
t4 => Text3

还有我需要的:

t1 => Text1
t2 => Text2
t3 =>
t4 => Text3

最佳答案

$.fn.ownText = function() {
return this.eq(0).contents().filter(function() {
return this.nodeType === 3 // && $.trim(this.nodeValue).length;
}).map(function() {
return this.nodeValue;
}).get().join('');
}

var text = $('#t2').ownText();

http://jsfiddle.net/5L9Ww/

稍微快一点的选择:

$.fn.ownText = function() {
var children = this.get(0).childNodes,
l = children.length,
a = [];
for (var i = 0; i < l; i++) {
if (children[i].nodeType === 3)
a.push(children[i].nodeValue);
}
return a.join('');
}

或者接受用于连接节点值的胶水和用于 trim 结果的选项的不同方法:

$.fn.ownText = function(o) {
var opt = $.extend({ glue: "", trim: false }, o),
children = this.get(0).childNodes,
l = children.length,
a = [];
for (var i = 0; i < l; i++) {
if (children[i].nodeType === 3) {
var val = children[i].nodeValue;
a.push(opt.trim ? $.trim(val) : val);
}
}
return a.join(opt.glue);
}

$('#t2').ownText({
glue: ',',
trim: true
});

关于javascript - 如何使用 jQuery 选择元素的自己的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21249558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com