jQuery 在没有 id 的变量或对象中找到元素然后隐藏
jQuery find element in variable or object without id then hide
如何在变量数据中找到 tr 没有任何有 id 的子 td 然后隐藏 tr?
我有:
var data = '<table class="hours">
<tbody>
<tr>
<td id="1">text</td>
<td>text</td>
</tr>
<tr>
<td>text</td>
</tr>
</tbody>
</table>';
在上面的例子中,第二个 tr 应该被隐藏,第一个不应该。
我试过了,但没用:
$jq(data).find(".hours tr:not([id])").hide();
任何人都可以建议正确实现此目的的方法吗?
Update/My解法:
$jq('tr').not(':has([id])').hide();
我在你的代码中看到了一件事。您已经位于根元素,因此您将无法使用选择器找到它:.hours
。你可以像下面那样做:
var data = `<table class="hours">
<tbody>
<tr>
<td id="1">text1</td>
<td>text2</td>
</tr>
<tr>
<td>text3</td>
</tr>
</tbody>
</table>`;
var $result = $(data).find('tr:not(:has([id]))').hide();
console.log( $result.closest('table')[0].outerHTML );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
$jq('tr').not(':has([id])').hide();
. 不是 - https://api.jquery.com/not/
:有 - https://api.jquery.com/has-selector/
有关上下文,请参阅原始问题
如何在变量数据中找到 tr 没有任何有 id 的子 td 然后隐藏 tr?
我有:
var data = '<table class="hours">
<tbody>
<tr>
<td id="1">text</td>
<td>text</td>
</tr>
<tr>
<td>text</td>
</tr>
</tbody>
</table>';
在上面的例子中,第二个 tr 应该被隐藏,第一个不应该。
我试过了,但没用:
$jq(data).find(".hours tr:not([id])").hide();
任何人都可以建议正确实现此目的的方法吗?
Update/My解法:
$jq('tr').not(':has([id])').hide();
我在你的代码中看到了一件事。您已经位于根元素,因此您将无法使用选择器找到它:.hours
。你可以像下面那样做:
var data = `<table class="hours">
<tbody>
<tr>
<td id="1">text1</td>
<td>text2</td>
</tr>
<tr>
<td>text3</td>
</tr>
</tbody>
</table>`;
var $result = $(data).find('tr:not(:has([id]))').hide();
console.log( $result.closest('table')[0].outerHTML );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
$jq('tr').not(':has([id])').hide();
. 不是 - https://api.jquery.com/not/
:有 - https://api.jquery.com/has-selector/
有关上下文,请参阅原始问题