Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选中复选框时使用jQuery检索数据_Jquery_Checkbox_Next - Fatal编程技术网

选中复选框时使用jQuery检索数据

选中复选框时使用jQuery检索数据,jquery,checkbox,next,Jquery,Checkbox,Next,我没有使用表格,而是使用下面的HTML在第1列显示一个复选框,在第2列显示一个名称,在第3列显示一个电子邮件地址。HTML如下所示: <div class="rowLight"> <div class="select"><input name="checkbox" id="chk1" class="chktbl" type="checkbox"></div> <div class="name">Mary</div><d

我没有使用表格,而是使用下面的HTML在第1列显示一个复选框,在第2列显示一个名称,在第3列显示一个电子邮件地址。HTML如下所示:

<div class="rowLight">
<div class="select"><input name="checkbox" id="chk1" class="chktbl" type="checkbox"></div>
<div class="name">Mary</div><div class="emayl">Mary@ABC.com</div>
</div>
<div class="rowDeep">
<div class="select"><input name="checkbox" id="chk2" class="chktbl" type="checkbox"></div>
<div class="name">Jerry</div><div class="emayl">Jerry@ABC.net</div>
</div>
Thanx,

杰瑞

像这样的事情可以奏效:

var data = $(".select input:checkbox:checked").map(function() {
    var $parent = $(this).closest(".select");
    return {
        name: $parent.next(".name").text(),
        email: $parent.siblings(".emayl").text()
    };
}).get();
请注意,数据如下所示:

[ { name: '<name>', email: '<email>' }, ... ]
示例:


注意事项:

  • 使用handy获取jQuery结果并将其转换为所需的数据
  • .map
    调用的末尾调用
    .get()
    ,将结果对象强制放入正确的数组(与jQuery对象相反)
  • 使用、和检索正确的数据

    • 这里有一个替代解决方案,使用
      rowDeep
      rowLight
      来表示行

      $('.rowLight,.rowDeep').each(function(i,e){
          var $row = $(e);
      
          // see if the checkbox is checked
          if ($row.find('input[type="checkbox"]').is(':checked')){
              var name = $row.find('.name').text(),
                  emayl = $row.find('.emayl').text();
      
              alert(name + ' <' + emayl + '>');
          }
      });
      
      $('.rowLight,.rowDeep')。每个(函数(即,e){
      var$行=$(e);
      //查看是否选中该复选框
      if($row.find('input[type=“checkbox”]”)是(':checked')){
      var name=$row.find('.name').text(),
      emayl=$row.find('.emayl').text();
      警报(名称+“”);
      }
      });
      

      检查这把小提琴,打开浏览器javascript控制台,即firefox中的Chrome或firebug


      根据jquery的版本,您可以使用兄弟姐妹()或下一个()。下一个()。

      .rowLight
      &
      .rowDeep
      表示行的交替DIV?您需要什么帮助?Andrew-我想将“数据”对象发送到我的PageMethod进行处理。我应该在PageMethod中定义什么类型的对象?类似于:公共共享函数wsGetEMails(ByVal数据为______________;)作为StringI我对ASP.NET不是很熟悉,但我会尝试使包含具有
      名称
      电子邮件
      属性的对象的数组正常工作。这只是一个猜测,但可能是您使用这些属性定义了一个对象,然后在方法中接受这些对象的数组。
      
      ["<name1>", "<email1>", "<name2>", "<email2>"]
      
      var data = $(".select input:checkbox:checked").map(function() {
          var $parent = $(this).closest(".select");
      
          return [ $parent.next(".name").text(), $parent.siblings(".emayl").text() ];
      }).get();
      
      $('.rowLight,.rowDeep').each(function(i,e){
          var $row = $(e);
      
          // see if the checkbox is checked
          if ($row.find('input[type="checkbox"]').is(':checked')){
              var name = $row.find('.name').text(),
                  emayl = $row.find('.emayl').text();
      
              alert(name + ' <' + emayl + '>');
          }
      });