我正在尝试访问jQuery类,以便可以将HTML表数据下载为文本格式。但是,我有一栏是带有选项的选择器,而不仅仅是输入。该表是动态生成的。我知道如何获得该价值,但是我在使用正确的逻辑时遇到了麻烦。现在,我的选择框如下所示:
tbl +='<td ><select id="status" name="status" class="status" data id="'+row_id+'">';
tbl += '<option' + (val['IncludeThis'] == "yes" ? ' selected' : '') + '>yes</option>';
tbl += '<option' + (val['IncludeThis'] == "no" ? ' selected' : '') + '>no</option>';
tbl += '</select></td>';
这里是jquery部分,除了其他值外,我还尝试获取选择值
$('tbody tr').each(function (idx, elem)
{
var elemText = [];
$(elem).children('td').each(function (childIdx, childElem)
{
const el = $(childElem);
if ($(childElem).hasClass("status"))
{
elemtext.push(el.find('option:selected').text());
}
else {
elemText.push($(childElem).text());
}
});
.hasClass尚未运行,.is也未运行。有什么建议吗?
答案 0 :(得分:0)
$(childElem)是td本身,因此hasClass检查td是否具有名称状态的任何类。要查找选择框是否具有任何类状态,可以尝试以下操作:
if ($(childElem).find('select').length > 0 && $(childElem).find('select').hasClass("status")) {
或
if ($(childElem).find('.status').length > 0) {
您提供的语法也有一些问题。
1)在选择框中,数据ID 之间不应有任何间隙。这样会导致选择框具有两个ID。
2)
if ($(childElem).hasClass("status"))
{
elemtext.push(el.find('option:selected').text());
}
未定义诸如 elemtext 之类的变量。您已经定义了 elemText
3)如果选择框的行数超过id =“ status”,则不能将其分配给每个框。