<input type="checkbox" onfocus="EnsureSelectionHandlerOnFocus(event,this,12)" onclick="ToggleAllItems(event,this,12)" title="Select or deselect all items" class="s4-selectAllCbx">
每当我刷新页面时,都会使用&#34; 12&#34;更改这些属性。在EnsureSelectionHandlerOnFocus和ToggleAllItems中。因此,我想得到&#34; 12&#34; onfocus和set&#34; 12&#34;使用Javascript进行onlick属性?
答案 0 :(得分:2)
如果我理解你是正确的,你想提取数字 - 内联事件监听器的最后一个参数?
//get the event, example EnsureSelectionHandlerOnFocus(event,this,12)
var event = document.getElementById('cbSelectAll').getAttribute('onfocus');
//extract the params, example event,this,12
var params = event.match(/\(([^)]+)\)/)[1];
//get the last param, example 12
var number = params.split(',')[2];
//outputs 12
console.log(number);
设置onclick事件编号参数:
var click = 'ToggleAllItems(event, this, NUMBER)';
click = click.replace('NUMBER', number);
document.getElementById('cbSelectAll').setAttribute('onclick', click);
document.getElementById的替代示例
//selecting the checkbox by its class (if the class is unique)
var element = document.querySelector('.s4-selectAllCbx');
console.log(element);
//alternatively selecting the checkbox by an attribute
var element = document.querySelector('[title="Select or deselect all items"]');
console.log(element);
或为复选框添加唯一名称:
<input type="checkbox" name="myCheckBox" ...>
var element = document.querySelector('[name="myCheckBox"]');
console.log(element);
两者都将返回复选框。如果多个元素具有相同的类或相同的属性,则将返回文档中的第一个匹配项。由于每次更改title
的属性时都必须更新代码,因此首选复选框是一个唯一的类。