2013-03-31 29 views
2

假設我在html文件的DIV裏面有一個名爲「Hello World」的文本。我想操作「Hello World」文本中的第六個位置,並使用innerHTML或類似的東西代替DOM中的結果。如何在JavaScript中處理DOM中的特定字符?

我做的方法是

var text = document.getElementById("divID").innerText; 

現在不知何故,我得到的文本,並使用manipluate爲的charAt特定位置的結果,並通過更換整個字符串不只是那個位置元素替換HTML結果。我想要問的是,我們是不是每次都需要替換整個字符串,或者有什麼方法可以從特定位置提取字符,並將結果替換爲該位置中的整個字符串或文本。

+0

看看這個答案http://stackoverflow.com/questions/1431094/how-do -i-替換-A-字符在-A-特定索引-在JavaScript的 – btevfik

回答

1

如果你只是需要插入一些文本到一個已經存在的字符串中,你應該使用replace()。無論如何,只需要替換一個字符就可以獲得任何東西,因爲它無論如何都需要創建一個新字符串(as strings are immutable)。

jsFiddle與div的

var text = document.getElementById("divID").innerText; 

// find and replace 
document.getElementById("divID").innerText = text.replace('hello world', 'hello big world'); 
1

var newtext = text.replace(text [6],'b');應該管用。很高興你問,我不知道這會起作用。

好奇它的工作原理,它並不會取代該字符的所有實例,這是奇怪的......我想用括號表示法訪問字符把字符視爲一些'字符'對象,而不僅僅是一個字符串。

請不要在此引用我的意思。

1

是的,你必須用另一個替換整個字符串,因爲字符串在JavaScript中是不可變的。你可以通過各種方式將它隱藏在一個函數調用後面,但最終發生的是構造一個替換舊函數的新字符串。

1

文字實際上是文本節點,因此我們必須通過更換舊的內容與新的一個明確操縱他們的內容。

如果您正在使用jQuery,那麼你可以參考下面的鏈接,一個可能的技術:

[鏈接替換文本節點使用jQuery] http://www.bennadel.com/blog/2253-Replacing-Text-Nodes-With-jQuery.htm

在幕後,我猜想,jQuery的仍然替換整個串**對於文本節點**

相關問題