我有一个用javascript
编写的函数,我想在jQuery
中重写它。这是函数代码:
function onclickRbtn(controlID , Message)
{
var s = document.getElementById(controlID);
var sVal = event.srcElement.value;
for (var i = 0; i < s.rows.length; i++)
{
if (s.getElementsByTagName("input")[i].value == sVal)
s.getElementsByTagName("label")[i].innerText = Message;
}
s.disabled = 'disabled';
}
这段代码是什么:event.srcElement.value`和jQuery中的等价物?
由于
答案 0 :(得分:4)
答案 1 :(得分:3)
你的意思是:
$("button").click(function(){
var value = $(this).val();
});
答案 2 :(得分:3)
如果你有JavaScript代码,请不要在jQuery中重写它。这就像是说“这把锤子可以将钉子钉在墙上,但我想用大锤代替。”
除此之外,您拥有的代码是IE 8及以下独有的,它在IE 9或其他浏览器中无效,因为它使用特定术语(全局event
对象,srcElement
。 ..)
以下是您应该使用的代码:
function onclickRbtn(controlID,Message,evt) {
evt = evt || window.event;
var s = document.getElementById(controlID),
sVal = (evt.srcElement || evt.target).value,
inputs = s.getElementsByTagName('input'),
labels = s.getElementsByTagName('label');
for( var i=0; i<s.rows.length; i++) {
if( inputs[i].value == sVal) labels[i].innerText = labels[i].textContent = Message;
}
s.disabled = true;
}
无论您何时附加事件,请确保将事件添加到参数中。例子:
<element onclick="onclickRbtn(controlID, Message, event);">
elem.onclick = function(e) {onclickRbtn(controlID, Message, e);};
答案 3 :(得分:2)
这适用于IE9,IE 8,IE7,Chrome 22,Safari 5.7.1。它在FF 14中不起作用:
$(event.srcElement || event.target);