假設我有以下DIV:如何更改元素的HTML子元素之前
<div id = "master">
"Random Text
<span id = "unknown">...</span>
</div>
如果我不知道跨度的ID,我將如何使用jQuery修改"Random Text"
?
請注意proposed duplicate的回答是javascript而不是jQuery。
假設我有以下DIV:如何更改元素的HTML子元素之前
<div id = "master">
"Random Text
<span id = "unknown">...</span>
</div>
如果我不知道跨度的ID,我將如何使用jQuery修改"Random Text"
?
請注意proposed duplicate的回答是javascript而不是jQuery。
使用節點類型屬性查找文本節點
節點類型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";
<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>
你可以這樣做:
var masterDiv = $('#master');
var text_to_change = masterDiv.childNodes[0];
text_to_change.nodeValue = 'new text';
這應該得到的是工作。
有什麼區別。只需更改選擇器 –
@Mahi jQuery沒有文本節點方法。如果你自己沒有解決方案,請停止抱怨使用本地dom方法 – charlietfl
這就是爲什麼他問問題只使用jquery解決的問題 – Mahi
的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
一個文本子節點@JorgeMejia你不讀題。 OP想要更改文本節點 – charlietfl
您是否有任何方法可以識別您想要更改的文本?它會始終出現在''標籤之前,它會始終是字符串「隨機文本」嗎? –