尝试访问jquery类以进行操作,但无法

时间:2019-01-24 04:16:16

标签: jquery

我正在尝试访问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也未运行。有什么建议吗?

1 个答案:

答案 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”,则不能将其分配给每个框。