現在Sharepointのカスタマイズを行っていますが、特定の要素IDが選択されている場合に関数を呼び出す必要があるという問題が発生しています。問題は、Sharepointインスタンスをインストールするたびに要素IDが変更されるため、私が目指しているのは、要素IDをその「値」で識別することです。私の質問にいくつかのコンテキストを与えるために、これはhtml(変更できません)です:
<span class="ms-RadioText" title="Yes"><input id="378Ukj200" name="radio_button" value="ctl00" checked="checked" type="radio"><label for="378Ukj200">Yes</label></span>
<span class="ms-RadioText" title="No"><input id="378Ukj201" name="radio_button" value="ctl01" type="radio"><label for="378Ukj201">No</label></span>
そして、これらは現在のgetElementIDベースのステートメントです(これは、インスタンスを本番ボックスに追加すると機能しなくなります)。
document.getElementByID('378Ukj200').onclick = new Function('checkForRadioChange("Yes");');
document.getElementByID('378Ukj201').onclick = new Function('checkForRadioChange("No");');
たとえば、spanタグを使用して、これを実現するための何かを達成したいと思っていました(もちろん、これは複数の理由で機能することはありません)。
var rispan = document.getElementsByTagName('span');
for( var i = 0, j= rispan.length; i < j; i+=1 ) {
var classes = span[i].getAttribute("title");
if( classes ) {
if( classes.indexOf("Yes") != -1) {
onclick = new Function('checkForRadioChange("Yes");');
}
else if( classes.indexOf("No") != -1) {
onclick = new Function('checkForRadioChange("No");');
}
}
}