我有以下HTML:
<div id="foo">
<span>
<a href="#" class="no-want">X</a>
1
</span>
<span>
<a href="#" class="no-want">X</a>
2
</span>
<span>
<a href="#" class="no-want">X</a>
Hello
</span>
</div>
我想使用jQuery在JS中仅获取以下
1
,2
和hello
(这意味着没有<a>
标记或
)。请注意,我不想影响DOM本身。我只想检索对象(例如数组)中的文本。这是我到目前为止所拥有的:
$('#foo span');
但是我似乎无法删除“ a”标签。
以下似乎也不起作用:
$('#foo span').remove('a');
我还知道
.remove()
会影响自身的DOM,而不仅仅是获取文本。 最佳答案
解决方案通过遍历每个孩子并将其克隆以进行操作来创建数组,从而使dom保持完整
var values = $('#foo').children().map(function () {
var $clone = $(this).clone();
$clone.children().remove();
return $.trim($clone.text());
}).get();
console.log(values) /// ["1","2","Hello"]
DEMO
关于javascript - 使用jQuery选择元素的一部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32631417/