0

我有一个 jquery 疑问。以下是函数。我正在使用 jquery-2.0.3.js 。我想写

$(document).ready(function () {

 function anyfunction(sender, txtid) {


}

}); 

但它给出了错误。为什么 ?

第二件事是

我想将数组作为参数传递给函数。如何 ?

      <input id="Text7" type="text" /><input id="Button7" type="button" 
        value="button" onclick="anyfunction(this,'Text7')" /></p>


 function anyfunction(sender, txtid) {

    $(document).ready(function () {

    var ctrl = $(sender).attr('id');      // get client id of control who fire event
    $('#' + ctrl)[0].focus();             // It is just for example . 

    // or

    var id1 = $("[id$='" + txtid + "']"); // get ref of any control on document using id .
    $(id1).focus();

});

}
4

1 回答 1

0

这段代码:

$('#' + ctrl)[0].focus();

应该:

$('#' + ctrl).focus();

$(...)返回一个 jQuery 对象,$(...)[0]从 jQuery 对象中提取对应的 DOM 对象。由于focus()是 jQuery 函数,因此应该将其应用于 jQuery 对象。

您的第二个版本看起来应该可以工作。也可以写成:

id1.focus();

因为id1是一个 jQuery 对象。它将按原样工作,因为当 jQuery 被赋予一个 jQuery 对象时,它只是简单地返回它,所以额外的包装没有任何危害(除了一点性能影响)。

我不明白您将数组传递给函数的意思。this是一个 DOM 对象,'Text7'是一个字符串,它们都不是数组。

于 2013-07-29T21:34:57.020 回答