2012-10-22 69 views
7

我正在嘗試將約翰更改爲邁克。我不知道爲什麼它不工作。更改跨度的內容編號

<span id="user">John</span> 

我想這但不工作我不知道爲什麼不工作。

function set() { 
    document['getElementById']('user')['value'] = Owner; 
    // owner value is mike 
} 
+0

你爲什麼認爲'span'標籤有價值? – zerkms

+0

爲什麼不使用'obj.key'語法而不是'obj ['key']'?對於靜態鍵來說,這是一條可行的路線。沒有人期望'document ['getElementById']'而不是'document.getElementById' – ThiefMaster

回答

13

如果你想更改ID,使用

document['getElementById']('user').id = 'mike'; 

,或者更經典,

document.getElementById('user').id = 'mike'; 

如果你要替換 「約翰」(即沒有ID,但量程的內容),做

document.getElementById('user').innerHTML = 'mike'; 
+0

如何改變'id'可以改變節點的文本? – zerkms

+0

@zerkms問題標題(「嘗試更改跨度ID」)和問題內容不同。這就是我爲每個人提供解決方案的原因。 –

+0

非常感謝:) – deerox

1

嘗試:

function set() { 
    document.getElementById('user').innerText= Owner; 
    // owner value is mike 
} 

Owner在哪裏聲明,它在你的函數範圍內有效嗎?

+0

innerText是特定於IE的。它現在支持Chrome,但不支持Firefox。 –

+0

好的,謝謝你的信息 –

+0

公平......這並不明顯。而其他瀏覽器使用textContent名稱不起作用。 –

3
function set() { 
    document.getElementByID('user').innerHTML = Owner; 
    // owner value is mike 
} 
+0

非常感謝:) – deerox

2

你可以試試這個

function set() 
{ 
    var elem = document.getElementById('user'); 

    elem.innerHTML = "Owner"; 
} 

if you want to add an **id** you can use **setAttribute()** 
eg: 

document.getElementById('user').setAttribute('id','owner'); 

注意

**value** attribute only work with input, text area,button etc.. 

如:

<input type="text" id="inid" value=""/> 

document.getElementById('inid').value = "Something"; // this will work 
+0

非常感謝這麼多兄弟:) – deerox

+0

總是在這裏幫助.. :) – Nevin

0

爲新版瀏覽器

document.getElementById("span_id_here").textContent="yourtext";