我正在尝试查找语法,以确定div是否包含将data-role
属性设置为header
的子div。我试过这些东西没有运气:
$('div[data-role*="page"]').each(function(i) {
if($(this).children('div').attr('data-role')=='header';) {
alert("has header");
}
});
$('div[data-role*="page"]').each(function(i) {
if($(this).children('div[data-role*="header"]').length!=0;) {
alert("has header");
}
});
答案 0 :(得分:16)
在此示例中,您在;
!=0;
$('div[data-role*="page"]').each(function(i) {
if ($(this).children('div[data-role="header"]').length != 0) {
alert("has header");
}
});
jsfiddle上的示例。
答案 1 :(得分:6)
尝试:
if ($('div[data-role*="page"]').has("div[data-role=header]").size() > 0)
alert("Has header");
答案 2 :(得分:5)
如果我正确阅读,那么以下内容应该有效:
$('div[data-role=page]:has(div[data-role])').css('border','1px solid #ccc');
选择包含具有'data-role'属性的子div的任何div。
虽然您似乎想要使用if
来触发alert()
,但此似乎是不必要的,因为上述内容将充当选择器。如果该选择器没有匹配任何元素,那么在我演示的用例中,不会影响任何元素。另一方面,如果选择了一个元素,或者选择了多个元素,那么这些元素就是。
答案 3 :(得分:4)
这将选择那些作为子元素的子元素(数据角色属性设置为标题)的div。
$('div > div[data-role=header]')