2

我的问题是,我想在运行时检索复选框 id 并稍后将它们用于其他目的。但是检索到的 id 被读取为对象。

我的代码是:

 // Following code gives id of checkbox which contains myCheckbox as its id.

   var myCheckbox= $('input[id$=myCheckbox]')[0].id;

 //  and Now I want to check if that checkbox is checked with following code:


  if ($(myCheckbox).is(':checked')) 
    return 1;
  else 
    return 0;

但是这里 myCheckbox id 被读取为 Object 而不是 id ,因此总是在 else 条件下输入并返回 0。当我直接输入复选框的 id 时,此代码有效。

if ($('#ctl001_myCheckbox').is(':checked')) 
        return 1;
      else 
        return 0;

它不应该那么复杂,我一直在使用 Javascript,但对 JQuery 来说是新手。

4

4 回答 4

3

您正确获取了 ID,但 jQuery 选择器需要该#符号,这与 CSS 选择器的方式非常相似。您需要将#字符添加到选择器中:

if ($('#'+myCheckbox).is(':checked')) 
    return 1;
  else 
    return 0;
于 2013-01-20T12:24:44.943 回答
2

BenM 是对的,但是为什么要获取元素的 ID,然后再查找?您已经找到了该元素,无需再次搜索它。

只需保留对元素的引用:

var myCheckbox = $('input[id$=myCheckbox]').first();
// or var myCheckbox = $('input[id$=myCheckbox]')[0];

// and later 

if (myCheckbox.is(':checked')) { 
// or if (myCheckbox.checked) {
于 2013-01-20T12:43:20.737 回答
1

简单地:

return  (($('#' + myCheckbox).is(':checked')) ^ false);
于 2013-01-20T12:44:53.593 回答
0

您是否尝试过使用:

var myCheckbox= $('input[id$=myCheckbox]').attr('id');
于 2013-01-20T12:24:21.153 回答