2012-01-11 71 views
3

我需要從使用javascript的擴展中更改「for」標籤。我不確定如何做到這一點。 提前感謝您的幫助!用java腳本更改html「for」標籤

<input id="theCheckboxId" type="checkbox" name="theCheckBoxName" /> 
<label for="theCheckBox">The text I want to change</label> 

回答

5

DEMO

先給標籤的ID

<label id="lbl1" for="theCheckBox">The text I want to change</label> 

然後做

document.getElementById("lbl1").setAttribute("for", "theCheckboxId"); 

編輯

w^ait,您是否想更改for值,或更改標籤的實際文字?在任何情況下,這裏是你將如何改變文本:

if (label.textContent) 
    label.textContent = "New Text"; 
else if (label.innerText) 
    label.innerText = "New Text" 
else 
    label.innerHTML = "New Text"; 
+1

另一種更改'for'值的方法:document .getElementById(「lbl1」)。htmlFor =「theCheckboxId」; – 2014-07-10 21:05:38

2

要更改文本,這樣做:

document.getElementById('theCheckboxId').nextElementSibling.textContent = 'newValue'; 

或本:

document.querySelector('#theCheckboxId + label').textContent = 'newValue'; 

或者,如果你需要支持舊瀏覽器,請執行以下操作:

function nextElement(el) { 
    while((el = el.nextSibling) && el.nodeType !== 1); 
    return el; 
} 

nextElement(document.getElementById('theCheckboxId')).innerHTML = 'newValue'; 

http://jsfiddle.net/3kEYw/

+0

是的,我不確定他是否想要更改文本或for屬性。 +1雖然 – 2012-01-11 04:27:13

+0

@AdamRackis:快速瀏覽示例中的當前文本。 ;)標題是欺騙我必須承認。 – 2012-01-11 04:28:54

+0

是的,那是讓我相信他可能想要改變文本的文本...... – 2012-01-11 04:31:09

0

你沒問,但如果你正在使用jQuery,你可以做到這一點通過簡單:

$('label[for="theCheckBox"]').text('your new text') 

這就是說,給它一個ID,而不是建議肯定是儘管我們不知道您是否可以訪問HTML(就像您曾經這樣做過,但您可以直接在那裏更改文本)