我正在使用以下函数来更改表单上的列中的填充:
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>
有没有办法可以更改此功能,以便适用于input
或textarea
?我假设这样做的方法是更改var tds = $(this).find('input'),
但是我不确定如何更改它,或者即使可以更改为“查找”textarea或输入。
答案 0 :(得分:107)
使用逗号结合多个查询:
var tds = $(this).find('input, textarea');
您也可以使用:input
作为选择器,但效率不高,也可能包含一些您不想包含的内容。
答案 1 :(得分:2)
您可以使用.children()
选择td
的孩子
var tds = $(this).children();
答案 2 :(得分:1)
您无法添加与textarea
相同id
的{{1}}。它不正确。 input
对于单个html元素是唯一的。
我建议您id's
。
class
答案 3 :(得分:0)
"fix bug 1", "fix bugs 2" , "implement feature X"
selector1:任何有效的选择器。
selector2:另一个有效的选择器。
选择器N:您可以使用的选择器数量也更多。
返回的 release
对象中DOM元素的顺序可能不相同,因为它们将按文档顺序排列。
示例:查找与这三个选择器中的任何一个都匹配的元素。
release = ["implement feature X"]