更改<label for =“”>

时间:2015-10-18 21:33:31

标签: javascript forms sharepoint

我在SharePoint 2013列表中工作,其中包含“允许'填充'选项的”选择列:“设置为”是“。

默认情况下,该单选按钮的文本标签设置为“指定您自己的值:”,并且无法通过用户界面更改。怎么能通过JS改变?我在下面提供了最终呈现代码的简短代码段。

<span title="Specify your own value:" class="ms-RadioText" onclick="SetFocusOnControl('ctl00_m_g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1_ff1251_ctl00_ctl02')">
    <input name="ctl00$m$g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1$ff1251$ctl00$RadioButtons" id="ctl00_m_g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1_ff1251_ctl00_ctl01" type="radio" value="ctl01">
    <label for="ctl00_m_g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1_ff1251_ctl00_ctl01">Specify your own value:
    </label>
</span>   

这是我尝试但未成功的地方:

document.getElementByName("ctl00$m$g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1$ff1251$ctl00$RadioButtons")[1].innerHTML="BOO!";
document.getElementByName("ctl00$m$g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1$ff1251$ctl00$RadioButtons")[1].innerText="BOO!";
document.getElementById("ctl00_m_g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1_ff1251_ctl00_ctl01")[1].innerText="BOO!";
document.getElementById("ctl00_m_g_d8db5d84_c3de_40e0_8fa4_d9fd909d75d1_ff1251_ctl00_ctl01")[1].innerHTML="BOO!";

谢谢,

-Haniel

1 个答案:

答案 0 :(得分:3)

getElementsByName适用于具有name属性的元素。同样,getElementById适用于具有id属性的元素。因此,既然标签没有,那些就行不通。

您需要的是

document.querySelector('label[for="ridiculouslylongid"]').innerHTML="BOO!";

此外,您在源代码中的两个函数中都有[1],但这不行。对于getElementsByName,您应该使用[0],因为结果是从0开始的。对于getElementById,对于querySelector,您根本不需要索引(它们不是集合)。