Javascript 使用jquery读取HTML表的第一列值
我有一张桌子:Javascript 使用jquery读取HTML表的第一列值,javascript,jquery,html,asp.net-mvc-3,Javascript,Jquery,Html,Asp.net Mvc 3,我有一张桌子: <table id="ItemsTable" > <tbody> <tr> <th> Number </th> <th> Number2 </th> </tr> <tr> <td>32174711</td> <td>321747
<table id="ItemsTable" >
<tbody>
<tr>
<th>
Number
</th>
<th>
Number2
</th>
</tr>
<tr>
<td>32174711</td> <td>32174714</td>
</tr>
<tr>
<td>32174712</td> <td>32174713</td>
</tr>
</tbody>
</table>
数
2号
32174711 32174714
32174712 32174713
我需要将值32174711和32174712以及列号的每一个其他值放入数组或列表中,我使用的是jquery 1.8.2
// iterate over each row
$("#ItemsTable tbody tr").each(function(i) {
// find the first td in the row
var value = $(this).find("td:first").text();
// display the value in console
console.log(value);
});
您可以使用
map
方法:
var arr = $('#ItemsTable tr').find('td:first').map(function(){
return $(this).text()
}).get()
从jQuerymap()
文档:
描述:通过函数传递当前匹配集中的每个元素,生成包含返回值的新jQuery对象。
.
由于返回值是一个jQuery包装的数组,因此让()返回的对象使用基本数组是非常常见的
根据你的情况,你可以使用第一个孩子
var td_content = $('#ItemsTable tr td:first-child').text()
// loop the value into an array or list
有关演示,请参见此链接:
@Huangism是的,它是必需的,您的选择器只返回第一个tr的第一个td。@shmiddy这是另一个选项,为什么您认为
get
没有必要?$.map()
和map()
之间存在差异。返回一个jQuery对象。@未定义:get
或noget
,两个小提琴在控制台中返回相同的数组([“32174711”,“32174712”]
),就我所见。@Françoiswah我可以看到jQuery对象的所有方法和属性,一个是jQuery对象,另一个是实际数组。@undefined:ahhhh。。现在我明白了。很抱歉没有看到它!非常好:)当不使用get
时,结果仍然是jQuery对象。我可以调用jQuery方法,例如console.log(arr.eq(0))
,但在使用get()
时不能这样做。很不错的。在那种情况下你是绝对正确的。即使结果在控制台中看起来相同,但如果没有get
,它仍然是一个jQuery包装器。不错。当然,如果这是用户想要的,那么离开get()?首先是。每一行
,然后是这个
上的另一个jQuery包装,再加上查找
。不确定map在内部是如何工作的,但使用。查找只比每次在循环中使用它听起来更“便宜”<代码>+1
不管怎样,因为它会给你单独的值。这个答案可能是效率最低的。只是说,我不能谈论map
的内部结构,但我想它也有类似的功能。
var items = $.map($("#ItemsTable td:first-child"), function(ele){
return $(ele).text();
});
console.log(items);
var arr = [];
$("#ItemsTable tr").each(function(){
arr.push($(this).find("td:first").text()); //put elements into array
});