use*_*918 18 jquery children jquery-selectors
我有一个表格,其中有一个类似于以下内容的部分:
<tr>
<td> <span class="myclass"></span>
</td>
<tr>
Run Code Online (Sandbox Code Playgroud)
我的$(this)设置为tr元素,我正在尝试访问具有"myclass"类集的Span元素.以下似乎有效:
if ($(this).children('td').children('span').is('.myclass')){
alert('in here');
}
Run Code Online (Sandbox Code Playgroud)
但是当试图使用它时:
if ($(this).children("td > span").is('.myclass')){
Run Code Online (Sandbox Code Playgroud)
或这个:
if ($(this).children("td span").is('.myclass')){
Run Code Online (Sandbox Code Playgroud)
它不是.我认为上述2中的任何一个都会得出类似的结果(虽然通过不同的方法),但显然不是.
我在这里错过了什么?
谢谢!
Fel*_*ing 19
children(selector)只会匹配那些匹配的孩子selector.没有tr孩子(tds)可以匹配td > span,因为tr没有span子元素,只有tds和td > span !== td.
该文件也是关于这个相当明确:
获取匹配元素集中每个元素的子元素,可选择通过选择器进行过滤.
你可能想要的是.find():
$(this).find("td > span")
Run Code Online (Sandbox Code Playgroud)
它返回与选择器匹配的所有后代,而不仅仅是子项.
| 归档时间: |
|
| 查看次数: |
52079 次 |
| 最近记录: |