如何使用Javascript将属性中的值获取到另一个属性

时间:2014-04-03 09:22:41

标签: javascript jquery html

<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属性?

1 个答案:

答案 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的属性时都必须更新代码,因此首选复选框是一个唯一的类。