我不知道怎么称呼它,但让我称之为半内部文本。
例子
<div id='myDiv'>
This is the semi-inner text
<div id='other'></div>
This is the semi-inner text
<div>
我想删除/替换那些This is the semi-inner text
使用 jquery 的。
我怎样才能做到这一点?
如果您只关心子节点...
$('#myDiv').contents().filter(function() {
return this.nodeType == 3
}).each(function() {
this.data = this.data.replace(/This is the semi-inner text/g, 'swapped');
});
如果要检查所有后代节点,请在检测到元素节点 ( this.nodeType == 1
) 时使函数递归。
$('#myDiv')
.contents()
.filter(function() {
return this.nodeType == 3;
})
.each(function() {
$(this).remove();
});
使用 contents() 并过滤掉所有等于 3 的 nodeType 并删除它们:
$('#myDiv').contents().filter(function() {
return this.nodeType == 3;
}).remove();
使用以下代码替换内容
$("#other").html("your code");
并且用户将您的代码包装在带有 id 的 span 标记中
最简单的方法是将其放置在具有如下 id 的跨度中:
<div id='myDiv'>
<span id="myInnerText">This is the semi-inner text</span>
<div id='other'></div>
This is the semi-inner text
<div>
然后像这样替换它:
$("#myInnerText").text("replacement text");
你也可以这样做:
target_div = $("#myDiv")
reg_exp = /This is the semi-inner text/g;
new_text = "some other text"
target_div.html(
target_div.html()
.replace(
new RegExp(reg_exp),
new_text)
);
});