如果输入元素包含表行

Posted

技术标签:

【中文标题】如果输入元素包含表行【英文标题】:table row if input element consists 【发布时间】:2011-12-28 10:43:18 【问题描述】:

有一个表格,如果至少包含一个 input 元素,我如何获得tr(表格行)。

我试过了:

$('#tablename:contains(input)').closest('tr');

它不起作用。

【问题讨论】:

也许$('#tablename tr input').closest('tr') 【参考方案1】:
$('#tablename tr:has(input)')

就是你要找的。​​p>

阅读:has() selector。

:contains() 将查找简单文本,而:has() 将查找与选择器匹配的元素。

或者more efficient version

$('#tablename tr').has('input')
阅读.has() filter function。 jsFiddle Demo

【讨论】:

不错!更进一步,我将如何检查输入的特定值? @Alex 我猜filter() 对你有用。【参考方案2】:

我认为你需要解释一下你想要做的更好一点。如果你发现了

$('#tablename').find(":input").val();

只有当你有一个输入时它才有效,也许你正在寻找的是这个:

  $('#tablename').find(":input").each(function() 
     // Prints the value of each input.
    alert($(this).val());
   

【讨论】:

OP 想要trs,没有输入:how I can get tr (table row)【参考方案3】:

怎么样

$('#tablename tr input').closest('tr')

【讨论】:

【参考方案4】:

试试这个,

 $('#tablename input').closest('tr');

【讨论】:

【参考方案5】:

你可以用这个$('#tablename:has(input)').find('tr')

我希望你会觉得这很有用!

【讨论】:

【参考方案6】:

这一定有帮助:

$('#tablename input').parentsUntil('tr');

【讨论】:

这将选择trinput 之间的所有内容,而不是tr 本身。

以上是关于如果输入元素包含表行的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 单击表行上的事件以更改HTML元素

如果数量相同,则jQuery着色表行

YII2 获取 id 不等于数组元素的表行

为什么表元素的表行(tr)的宽度不行,而高度却可以?

如何将表行序列化为 json 对象

如果第一个元素包含任何零,那么我的程序就会以不希望的方式运行