jquery - 我可以同时对多种元素类型使用 jQuery find() 吗?

标签 jquery

我正在使用以下函数来更改表单列中的填充:

function padTitles() {
    $('#option-grid #dataTable tr, #topic-grid #dataTable tr')
        .each(function () {
            var tds = $(this).find('input'),
        text = tds.filter('[id^="input_TempRowKey_"]').val(),
        tdToPad = tds.filter('[id^="input_Title_"]'),
        pad;
            if (/\.0$/.test(text)) {
                pad = 10;
                level = 1;
            } else {
                pad = 35;
                level = 2;
            }
            tdToPad.css('margin-left', pad);
            a = tdToPad.closest('tr');
            if (tdToPad.closest('tr').get().className) {
                tdToPad.closest('tr').get().className = tdToPad.closest('tr').get().className.replace(/\blevel\-.*?\b/g, 'level-' + level);
            } else {
                tdToPad.closest('tr').addClass('level-' + level)
            }
        });
}

它非常适合此表单 HTML:

<td id="title_1" class=" ">
   <input type="text" value="Tests" name="item.Title" id="input_Title_1" >
</td>

现在我还希望它适用于以下 HTML:

<td id="title_1" class=" ">    
  <textarea name="item.Title" id="input_Title_1">Tests</textarea>
</td>

有没有办法可以更改此函数,使其适用于 inputtextarea?我认为执行此操作的方法是更改​​ var tds = $(this).find('input'), 但我不确定如何更改它,或者即使可以更改为“查找”文本区域或输入。

最佳答案

使用逗号联合多个查询:

var tds = $(this).find('input, textarea');

您还可以使用 :input 作为选择器,但效率不高,而且可能还包含一些您不想包含的内容。

关于jquery - 我可以同时对多种元素类型使用 jQuery find() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698448/

相关文章:

javascript - 使用Jquery获取文件名

javascript - JQuery选择子元素(如果不直接在父元素下,不确定是否可选择)

jquery - Jasny offcanvas 菜单

javascript - 通过(左/中/在新选项卡或窗口中打开)单击 html 链接提交表单的可能性

javascript - 如何使用 jQuery 添加 ul 元素自定义事件?

javascript - 找出 <td> 元素内 <span> 元素的数量

javascript - 如何为新的 Div 类设置链接和测试颜色和属性

javascript - 如何使用 jQuery 创建半圆形进度条

javascript - 在自动完成 jquery 中设置选项 minLength 3 时它不起作用

javascript - 上传和保存图像 onclick of image