我正在尝试使用我认为有效的简写符号检测元素直接兄弟。以下是我的代码:
$menuContainer = $('<div></div>').attr('id', 'menuContainer').attr('class', 'menu-container'); //.hide();
$menuContainerInner = $('<div></div>').attr('class', 'container-inner');
$menuContainer.append($menuContainerInner);
$menuContainer.insertAfter($('div#block-views-Menu-block_1'));
$($menuContainer + ' > div.container-inner').css('background', 'red');
在上面的代码中,我动态创建了2个div并将它们分配给变量以供后面的参考。 我在第一个div中嵌入了第二个div。
所以,使用$($menuContainer + ' > div.container-inner').css('background', 'red');
我试图找到并更改inner-div的背景颜色,而不使用普通的div-id路径。
有没有一些符号可以做到这一点,还是我错了?
答案 0 :(得分:1)
$menuContainer
是一个对象,您将隐式调用toString
,这可能不是您想要的。
我改用children
:
$menuContainer.children('div.container-inner').css('background', 'red');
但是如果你喜欢这个(以root身份单独传递对象)也可以:
$('> div.container-inner', $menuContainer).css('background', 'red');
答案 1 :(得分:1)
“$ menuContainer”似乎是一个jquery对象,而不是一个字符串,我相信你想要的是:
$ menuContainer.children( '容器内。');
答案 2 :(得分:1)
尝试使用选择器的上下文:
$('div.container-inner', $menuContainer).css('background', 'red');