使用原生JavaScript我需要将None
下面的文字更改为Black
我知道使用Jquery或其他库会很容易,但在这个项目中我不能使用它们,有人可以帮我做这个吗?
<li>
<input type="radio" id="options_82" class="radio product-custom-option" name="options[82]">
<span class="label">
<label for="options_82">None</label>
</span>
</li>
答案 0 :(得分:2)
使用querySelector
,getElementById
等获取元素,然后使用'Black'
或textContent
属性将其设置为innerHTML
。除非您实际设置HTML,否则使用textContent
是最佳做法。
document.querySelector('label[for="options_82"]').textContent = 'Black';
使用ID的更复杂的选择器可能比上面更快:
document.querySelector('#options_82 + .label label').textContent = 'Black';
答案 1 :(得分:1)
假设您需要匹配for
属性(您的html结构看起来可能不止一个),您可以使用getElementsByTagName
来获取标签,然后循环比较它们for
属性。
function getLabel(for) {
var labels = document.getElementsByTagName('label');
for (var i = 0, c = labels.length; i < c; i++) {
if (labels[i].getAttribute('for') === for) {
return labels[i];
}
}
}
然后,您可以修改元素的innerHTML
值。
var label = getLabel('forvalue');
if (label) {
label.innerHTML = 'new text';
}