我想將一個元素添加到textNode。例如:我有一個函數在元素的textNode內搜索一個字符串。當我找到它時,我想用HTML元素替換。那有什麼標準嗎? 謝謝。JavaScript:在textNode中添加元素
11
A
回答
18
你不能只是替換字符串,你必須替換整個TextNode元素,因爲在DOM中的TextNode elements can't contain child elements。
所以,當你發現你的文本節點,產生的替換件,然後替換類似功能的文本節點:
function ReplaceNode(textNode, eNode) {
var pNode = textNode.parentNode;
pNode.replaceChild(textNode, eNode);
}
對於它出現什麼你想做的事,你就必須打破將當前的文本節點分成兩個新的文本節點和一個新的HTML元素。下面是一些示例代碼,希望你指出正確的方向:
function DecorateText(str) {
var e = document.createElement("span");
e.style.color = "#ff0000";
e.appendChild(document.createTextNode(str));
return e;
}
function SearchAndReplaceElement(elem) {
for(var i = elem.childNodes.length; i--;) {
var childNode = elem.childNodes[i];
if(childNode.nodeType == 3) { // 3 => a Text Node
var strSrc = childNode.nodeValue; // for Text Nodes, the nodeValue property contains the text
var strSearch = "Special String";
var pos = strSrc.indexOf(strSearch);
if(pos >= 0) {
var fragment = document.createDocumentFragment();
if(pos > 0)
fragment.appendChild(document.createTextNode(strSrc.substr(0, pos)));
fragment.appendChild(DecorateText(strSearch));
if((pos + strSearch.length + 1) < strSrc.length)
fragment.appendChild(document.createTextNode(strSrc.substr(pos + strSearch.length + 1)));
elem.replaceChild(fragment, childNode);
}
}
}
}
也許jQuery的會作出這更容易,但它是很好理解爲什麼所有這些東西的作品它的方式。
+0
你有什麼例子嗎?謝謝。 – thomas 2010-10-18 22:31:43
相關問題
- 1. XStream元素包含TextNode和元素
- 2. 如何在Javascript中添加HTML元素?
- 3. 如何在JavaScript中添加新元素?
- 4. 如何在換行插入javascript textNode元素
- 5. 添加數組元素Javascript
- 6. 使用JavaScript添加元素
- 7. 添加HTML元素的JavaScript
- 8. 在javascript中添加可變數組元素的元素
- 9. 在JavaScript中添加onclick事件以添加新元素
- 10. 用JavaScript添加元素到DOM中
- 11. 用JavaScript添加新元素到DOM中
- 12. 用Javascript添加元素到單元格
- 13. 在JSON中添加元素
- 14. 在IE7中添加元素
- 15. 在xts中添加元素
- 16. 如何在不使用Jquery獲取降序元素textnode的情況下檢索元素的textnode?
- 17. Javascript添加表單元素不被添加到數組中
- 18. 的JavaScript TextNode更新
- 19. CSS在元素內添加元素?
- 20. jquery在div元素外添加元素
- 21. 添加元素
- 22. 添加元素
- 23. 的Javascript,再添加一個元素...
- 24. javascript示例添加刪除元素
- 25. 時間元素添加到JavaScript數組
- 26. 的Javascript添加動態HTML元素
- 27. 添加元素到div與jquery或javascript
- 28. Javascript將新屬性添加到元素
- 29. 元素不會添加到Javascript數組
- 30. 添加JavaScript變數HTML元素
你可以/你想使用jQuery嗎? – 2010-10-18 22:23:11
對不起,我不能。但順便說一句,向其他人展示你的解決方案... – thomas 2010-10-18 22:23:55
你已經有搜索字符串的功能,或者你也在問這個問題嗎? – palswim 2010-10-18 23:00:46