我需要从使用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