2015-10-18 34 views
0

我正在SharePoint 2013列表中選擇列中添加「允許填充」選項:「設置爲是」。正在更改<label for>

默認情況下,該單選按鈕的文本標籤被設置爲「指定您自己的值:」,並且不能通過用戶界面進行更改。如何通過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

回答

3

getElementsByName作品與name屬性的元素。同樣,getElementById適用於具有id屬性的元素。所以,既然這個標籤既沒有,那些也不起作用。

你需要的是

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

此外,您在這兩個來源中的功能有[1],但是那也不行。對於getElementsByName,您應該使用[0],因爲結果是基於0的。對於getElementById,至於querySelector,根本不需要索引(它們不是集合)。

+0

您好李斯特先生,謝謝你的幫助。我不斷收到一個錯誤,它是一個空對象。該ID與標籤的ID相匹配。有什麼想法嗎? – Haniel

+0

@Haniel這很奇怪。正如你所看到的,我在你的源代碼中創建了一個[jsfiddle.net/MrLister/aa8Lu61e/1/]。在標籤已經存在之後,您確定您在正確的時刻調用了JavaScript嗎?另外,在哪個瀏覽器? –

+0

再次,經過一番調查後,我可以通過將腳本塊放在控件旁邊而不是在頁面的頂部或底部來實現它。 – Haniel