jQuery解析HTML元素并获取它的内部HTML

时间:2016-08-19 11:02:56

标签: jquery

我有一个带有表行的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,那么我做错了什么?感谢。

1 个答案:

答案 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());