我有一个带有表行的HTML表,但是有些元素里面有<span>
个元素,所以我想获得该跨度的内部html。
我有一个包含所有<tr>
元素的数组(不是jQuery对象,因为我是从DataTables插件API获得的),所以我有这个代码:
if (data[i+1].includes("span")) {
var label = $.parseHTML(data[i+1]);
// editFormInputs.eq(i).val(label.first().html());
} else {
editFormInputs.eq(i).val(data[i+1]);
}
所以问题出在注释行上。我试图将html转换为带有parseHTML()
的jQuery元素,后者返回一个数组。这工作正常,但是当我尝试使用first()
函数获取数组的第一个元素时,它给出了一个错误first() is not a function
,那么我做错了什么?感谢。
答案 0 :(得分:2)
parseHTML
是一个罕见的jQuery函数,它没有给你一个jQuery对象;它给你一个数组:
jQuery.parseHTML( data [, context ] [, keepScripts ] )
返回:
Array
描述:将字符串解析为DOM节点的数组。
(我的重点)
所以:
editFormInputs.eq(i).val($(label[0]).html());
请注意,label[0]
将是tr
元素。我不清楚你想要tr
元素的HTML与其span
之一的HTML,但无论如何,这都是错误的原因。
如果您想要(例如)span
中的第一个tr
的HTML:
editFormInputs.eq(i).val($(label[0]).find("span").first().html());