更改<标签为>

Changing <label for>

本文关键字:标签 更改      更新时间:2023-09-26

我在SharePoint 2013列表中工作,其中有一个选择列,"允许'填充'选择:"设置为Yes。

默认情况下,该单选按钮的文本标签设置为"指定您自己的值:",并且不能通过用户界面更改。如何通过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!";

谢谢,

getElementsByName适用于具有name属性的元素。类似地,getElementById适用于具有id属性的元素。因此,由于标签两者都没有,所以这些都不起作用。

你需要的是

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

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