首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算这个非常长的Jquery语句

计算这个非常长的Jquery语句
EN

Stack Overflow用户
提问于 2011-02-08 03:20:41
回答 2查看 110关注 0票数 0
代码语言:javascript
运行
复制
   <table id="tb1" border="0" align="left" cellpadding="2" cellspacing="2" class="formTable" width="100%">
   <tbody>
      <tr> 
         <th class="coltextleft" colspan=3> seats </th>
         <th>Total Seat Count :  <span id="seats">0</span></th>
         <th>SALC  <input name="txt1" type="text" id = "txt1"></th>
         <th>Column name </th>   <th> <input name="id_reset" type="button"  id="id_reset" value="RESET" ></th>              
      </tr>
      <tr>
         <td>&nbsp;</td>
         <td id="zxx"> Col1</td>
         <td> Col2</td>
         <td> Col3</td>
         <td> COL4</td>
         <td>COL5</td>
         <td>COL6</td>
      </tr>
      <tr id ="rnum_$i"><td>$i</td>
         <td><input type="text" id="id_seats$i" name="seats[]"/></td>
         <td>HTML ELEMENT OF TYPE SELECT </td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
      <tr>
   </tbody>
</table>

假设对于上面的html表,我有5行,我们有一个按钮"Addone row“,它将一个新行加到表中。

代码语言:javascript
运行
复制
var num = $('#id_seats1').parent().parent().parent().children().last().children().html()*1;

如何计算上述html表的Jquery语句。此语句的输出给出了上述html表中存在的行数。你能展示一下这条语句的一步一步执行吗

代码语言:javascript
运行
复制
var num = $('#id_seats1').parent().parent().parent().children().last().children().html()*1;

请帮帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-08 03:27:26

代码语言:javascript
运行
复制
 $('#id_seats1')

这将选择<input id='id_seats1'>元素。

代码语言:javascript
运行
复制
 .parent().parent().parent()

这将依次选择tdtrtbody元素。

代码语言:javascript
运行
复制
.children().last()

这将选择tbody元素的最后一个子元素,它是一个tr

代码语言:javascript
运行
复制
.children().html()

这将选择最后一行中所有td的html内容。

代码语言:javascript
运行
复制
*1

这会将最后一行的内容(包含该行中所有单元格内容的字符串)转换为数字。

由于第一个单元格包含一个计数器$i变量,因此它是最终分配给var num的值

票数 4
EN

Stack Overflow用户

发布于 2011-02-08 04:49:53

jQuery语句不会返回表中的行数,而是返回表中最后一个元素的子元素的等价物的内容。

用于查找表中总行数的jQuery片段应该是,

代码语言:javascript
运行
复制
var num = $('#id_seats1').parent().parent().parent().children().length - 2;

并且可以优化为,

代码语言:javascript
运行
复制
var num = $('#id_seats1').closest('tbody').children().length - 2;

但理想的解决方案是,

代码语言:javascript
运行
复制
var num = $('#tb1 > tbody > tr').length - 2;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4925493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档