0

我正在尝试选择这个 div:

<div class="k-widget k-window">

如果它有这个孩子

<div id="window_Monthly">

我试过了:

$("div.k-window:has(div#window_Monthly)")
4

3 回答 3

3

你应该避免使用:has(). 根据 API,

因为 :has() 是 jQuery 扩展而不是 CSS 规范的一部分,所以使用 :has() 的查询无法利用原生 DOM querySelectorAll() 方法提供的性能提升。为了在现代浏览器中获得更好的性能,请改用 $("your-pure-css-selector").has(selector/DOMElement) 。


但是,还有其他一些方法可以解决这个问题:

选择器:

$("div.k-window div#window_Monthly")
$(".k-window #window_Monthly")

演示:http: //jsfiddle.net/JHQXd/1/

中频/长度:

IMO,最好使用.find().children()但两者都是有效的。

if($('div.k-window').find('#window_Monthly').length)
     //do something

或者

if($('div.k-window').find('#window_Monthly').length > 0)
         //do something

演示:http: //jsfiddle.net/JHQXd/2/

于 2013-08-22T18:31:41.283 回答
1

您的解决方案有效。请检查:http jsFiddle: //jsfiddle.net/JHQXd/

于 2013-08-22T18:33:19.407 回答
0
$('.k-widget>#window_Monthly').parent()

如果孩子不是一级后代:

$('.k-widget #window_Monthly').parents('.k-widget')
于 2013-08-22T18:30:56.687 回答