假设我有以下div:
<div id = "master">
"Random Text
<span id = "unknown">...</span>
</div>
如果我不知道span的id,我将如何使用jQuery修改"Random Text"
?
请注意proposed duplicate的答案是javascript而不是jQuery。
答案 0 :(得分:2)
使用节点类型属性查找文本节点
节点类型3用于文本节点。
http://www.w3schools.com/jsref/prop_node_nodetype.asp
您可以使用nodeValue属性设置文本节点元素的文本
var textNodeList = $("#master")
.contents()
.filter(function() {
return this.nodeType === 3; //Node.TEXT_NODE
});
textNodeList[0].nodeValue = "Not Random Text";
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "master">
"Random Text
<span id = "unknown">...</span>
</div>
&#13;
答案 1 :(得分:0)
jQuery没有自己的文本节点方法。
仅使用jQuery的抽象方法,不需要知道或使用本机dom方法或属性
$('#master').html(function(){
return $(this).children().clone(true);// only return elements, clone to preserve any possible event handlers
}).prepend('Some new text');
假设只有一个文本节点子节点为#master
答案 2 :(得分:-1)
你可以这样做:
var masterDiv = $('#master');
var text_to_change = masterDiv.childNodes[0];
text_to_change.nodeValue = 'new text';
这应该可行。
答案 3 :(得分:-1)