任何人都可以向我解释如何做到这一点,jquery 的 api 确实缺乏这一点。以下代码有什么问题?
var arr = $(value).filter(function() { return $(this).is("TD"); } ).html();
alert(arr[1]);
我只想获取 td 的 innerHTML/text 并将其放入数组中
最佳答案
将 .map()
与 .get()
结合使用是一种方法:
var arr = $(value).map(function() {
var $th = $(this);
if($th.is("TD")) return $th.html();
}).get();
alert(arr);
我不确定 value
代表什么,但是如果您将选择器更改为仅匹配 td
元素,您可以使用 return $ 简化 return 语句(this).html();
。
.map()
迭代元素,并将返回值添加到 jQuery 对象。 .get()
仅从 jQuery 对象中检索数组。
听起来 value
是一个 tr
。然后你可以这样做:
var arr = $(value).children('td').map(function() {
return $(this).html();
}).get();
alert(arr);
要创建一个数组,每个项目都包含该行的 td
元素的 html 数组,您可以这样做:
var arr = [];
$('tr').each(function() {
arr.push($(this).children('td').map(function() {
return $(this).html();
}));
}).get();
console.log(arr);
这使用了标准的 .push()
因为我不认为在 .map()
中使用 .map()
会工作。我认为当你将内部数组传递给 jQuery 对象时,它只是将它添加到主数组(或其他东西)。
关于javascript - 如何在 jQuery 中使用 $.makeArray(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3215585/