jquery - 尝试访问 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 也没有。有什么建议么?
解决方案
$(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" 行,则无法将它们分配给其中的每一个。
推荐阅读
- flutter - 我在颤振上获取地理位置时遇到问题
- html - 如何使用响应式文本和图像创建 3 列?
- excel - 在网站上选择多个特殊格式的单元格并将结果导入excel
- sql - 使用PowerShell时有没有办法返回子文件夹中的最后一个文件
- python - Flask SQL Alchemy 使用 != 列条件查询表
- python - 脚本在 Windows 中运行,但不在 ubuntu 20 中
- python - 创建二叉树
- javascript - 除了作用域之外,还有什么其他原因为数组本身提供了对数组本身的引用?
- python - 将字符串转换为布尔值仅给出 False 值
- google-sheets - 有没有办法收集访问 Google 站点的 Google ID?