好吧,这看起来应该是一个简单的问题,但答案是我的答案.我有一个从JSON数据构建的表单,我从中构建了一个包含INPUT文本控件的3行和14列的表.
当任何控件中的值发生变化时,我需要找到第一列中输入控件等于特定年份的包含行.
以下是标记示例:
我尝试过的选择器是:#MyTable tr:has(‘input [value =“{year}”]’)和几十种变体.
我将{year}字符串替换为我正在搜索的年份值,因此最终看起来像:#MyTable tr:has(‘input [value =“2014”]’)
我相信它可能是由于最初通过代码设置值的事实,因为如果我使用#MyTable tr:has(‘input’)它将返回所有行.
由于可维护性,我不想硬编码路径,只是在javascript代码中说$(this).closest(“tr”)….
知道如何检索包含具有特定值的输入的TR的引用吗?如果我的代码是正确的,在通过代码设置值时是否需要做一些不同的事情?
最佳答案
选择器$(‘#MyTable tr:has(input [value =“2014”])’)仅在输入元素具有值为2014的硬编码值属性时才有效.请参阅this example.
如果您尝试选择没有硬编码值属性的输入元素,则可以筛选元素并返回其值等于2014的输入元素.根据您的需要,您可以监听输入或更改事件.
$('#MyTable input').on('input change',function () {
$tr = $('#MyTable tr input:first').filter(function () {
return this.value === '2014' || $(this).attr('value') === '2014';
}).closest('tr');
});
原文链接:https://www.f2er.com/html/426113.html
猜你在找的HTML相关文章