我使用Cheer.io从表中抓取日期。页面设置如下:
<tr>
<td>*other values*</td>
<td>16-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>14-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>12-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>12-12-2017</td>
<td>*other values*</td>
</tr>
每当我执行此代码时:
let date= $('tr td:nth-child(2)').text();
jsonarr.push(date)
console.log(jsonarr);
所有日期都只是在一个数组索引中抛出。我怎样才能在自己的索引中获得每个日期?
提前致谢
答案 0 :(得分:2)
根据text文档
在匹配的集合中获取每个元素的组合文本内容 元素,包括它们的后代,或者设置文本内容 匹配的元素。
您需要使用map
和get
var date= $('tr td:nth-child(2)').map( function(){
return $(this).text()
}).get();
console.log(date);
<强>演示强>
var date= $('tr td:nth-child(2)').map( function(){ return $(this).text() }).get();
console.log(date);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>*other values*</td>
<td>16-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>14-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>12-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>12-12-2017</td>
<td>*other values*</td>
</tr>
</table>
答案 1 :(得分:1)
不要使用.text()
,它会创建匹配元素的文本内容的单个连接字符串。
而是使用.map().toArray()
创建一个数组。
let date= $('tr td:nth-child(2)').map((i, el) => el.textContent).toArray();
console.log(date);
当然,你不需要jQuery来做这件事。
let date= Array.from(
document.querySelectorAll('tr td:nth-child(2)'), el=>el.textContent
);
console.log(date);
答案 2 :(得分:1)
let dates = [];
$('tr td:nth-child(2)').each(function(){ dates.push($(this).text()); });
答案 3 :(得分:0)
尝试以下方式:
let jsonarr =[];
let date= $('table tr td:nth-child(2)').each(function(i, el){
jsonarr.push($(el).text())
})
console.log(jsonarr);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>*other values*</td>
<td>16-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>14-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>12-12-2017</td>
<td>*other values*</td>
</tr>
<tr>
<td>*other values*</td>
<td>12-12-2017</td>
<td>*other values*</td>
</tr>
</tbody>
</table>
&#13;