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

我可以同时对多个元素类型使用jQuery find()吗?,jquery,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(), t

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

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>

测验

是否有办法更改此函数,使其适用于
输入
文本区域
?我假设这样做的方法是更改
var tds=$(this).find('input'),
,但是我不确定如何更改它,或者即使可以更改为“find”文本区域或输入

使用逗号合并多个查询:

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

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

您可以使用
.children()
选择
td
的子对象,不管它是什么

var tds = $(this).children();

不能添加与另一个元素具有相同id的
textarea
。这是不正确的<代码>id值对于文档中的单个html元素是唯一的

我建议你改为
class

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

<textarea name="item.Title" class="myclass" id="input_Title_2">Tests</textarea>

var tds = $(this).find('.myclass')

测验
var tds=$(this.find('.myclass'))
选择器1:任何有效的选择器。 选择器2:另一个有效的选择器。 selectorN:您可以选择更多有效的选择器。 返回的
jQuery
对象中DOM元素的顺序可能不同,因为它们将按文档顺序排列。 示例:查找与这三个选择器中的任何一个匹配的元素

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>multiple demo</title>
  <style>
  div, span, p {
    width: 126px;
    height: 60px;
    float: left;
    padding: 3px;
    margin: 2px;
    background-color: #eee;
    font-size: 14px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<div>div</div>
<p class="myClass">p class="myClass"</p>
<p class="notMyClass">p class="notMyClass"</p>
<span>span</span>
 
<script>
$( "div, span, p.myClass" ).css( "border", "3px solid red" );
</script>
 
</body>
</html>

多重演示
司,司潘,p{
宽度:126px;
高度:60px;
浮动:左;
填充:3倍;
保证金:2倍;
背景色:#eee;
字体大小:14px;
}
div

p class=“myClass”

p class=“notMyClass”

跨度 $(“div,span,p.myClass”).css(“边框”,“3px实心红色”);

一个表单使用文本区域,另一个表单使用输入。对不起,我应该提到这是两种不同的形式。如果两种形式在同一页,它仍然无效。
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>multiple demo</title>
  <style>
  div, span, p {
    width: 126px;
    height: 60px;
    float: left;
    padding: 3px;
    margin: 2px;
    background-color: #eee;
    font-size: 14px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<div>div</div>
<p class="myClass">p class="myClass"</p>
<p class="notMyClass">p class="notMyClass"</p>
<span>span</span>
 
<script>
$( "div, span, p.myClass" ).css( "border", "3px solid red" );
</script>
 
</body>
</html>