Ed *_*ams 5 html javascript jquery jquery-selectors
好吧,这看起来应该是一个简单的问题,但答案是我的答案.我有一个从JSON数据构建的表单,我从中构建了一个包含INPUT文本控件的3行和14列的表.
当任何控件中的值发生变化时,我需要找到第一列中输入控件等于特定年份的包含行.
以下是标记示例:
<table id="MyTable">
<tr>
<td><input type="text" /></td>
<td><input type="text" class="changeHandled"/></td>
<td><input type="text" class="changeHandled" /></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我尝试的选择器是:#MyTable tr:has('input[value="{year}"]')和几十种变化.
我用{year}我正在搜索的年份值替换字符串,所以最终看起来像:#MyTable tr:has('input[value="2014"]')
我相信它可能是由于最初通过代码设置值的事实,因为如果我使用#MyTable tr:has('input')它返回所有行.
由于可维护性,我不想硬编码路径,只是$(this).closest("tr")...在javascript代码中说.
知道如何检索包含具有特定值的输入的TR的引用吗?如果我的代码是正确的,在通过代码设置值时是否需要做一些不同的事情?
仅当元素具有硬编码时,选择器$('#MyTable tr:has(input[value="2014"])')才会起作用inputvalue仅当元素具有值为 的2014。请参阅此示例。
如果您尝试选择input没有硬编码value属性的元素,那么您可以过滤这些元素并返回input值等于的元素2014。根据您的需要,您可以收听input或change事件。
$('#MyTable input').on('input change', function () {
$tr = $('#MyTable tr input:first').filter(function () {
return this.value === '2014' || $(this).attr('value') === '2014';
}).closest('tr');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7262 次 |
| 最近记录: |