我需要從使用javascript的擴展中更改「for」標籤。我不確定如何做到這一點。 提前感謝您的幫助!用java腳本更改html「for」標籤
<input id="theCheckboxId" type="checkbox" name="theCheckBoxName" />
<label for="theCheckBox">The text I want to change</label>
我需要從使用javascript的擴展中更改「for」標籤。我不確定如何做到這一點。 提前感謝您的幫助!用java腳本更改html「for」標籤
<input id="theCheckboxId" type="checkbox" name="theCheckBoxName" />
<label for="theCheckBox">The text I want to change</label>
先給標籤的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";
要更改文本,這樣做:
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';
是的,我不確定他是否想要更改文本或for屬性。 +1雖然 – 2012-01-11 04:27:13
@AdamRackis:快速瀏覽示例中的當前文本。 ;)標題是欺騙我必須承認。 – 2012-01-11 04:28:54
是的,那是讓我相信他可能想要改變文本的文本...... – 2012-01-11 04:31:09
你沒問,但如果你正在使用jQuery,你可以做到這一點通過簡單:
$('label[for="theCheckBox"]').text('your new text')
這就是說,給它一個ID,而不是建議肯定是儘管我們不知道您是否可以訪問HTML(就像您曾經這樣做過,但您可以直接在那裏更改文本)
另一種更改'for'值的方法:document .getElementById(「lbl1」)。htmlFor =「theCheckboxId」; – 2014-07-10 21:05:38