JQuery兄弟速记

时间:2011-07-19 16:10:48

标签: jquery navigation

我正在尝试使用我认为有效的简写符号检测元素直接兄弟。以下是我的代码:

$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路径。

有没有一些符号可以做到这一点,还是我错了?

3 个答案:

答案 0 :(得分:1)

$menuContainer是一个对象,您将隐式调用toString,这可能不是您想要的。

我改用children

$menuContainer.children('div.container-inner').css('background', 'red');

但是如果你喜欢这个(以root身份单独传递对象)也可以:

$('> div.container-inner', $menuContainer).css('background', 'red');

Gratuitous live example

答案 1 :(得分:1)

“$ menuContainer”似乎是一个jquery对象,而不是一个字符串,我相信你想要的是:

$ menuContainer.children( '容器内。');

答案 2 :(得分:1)

尝试使用选择器的上下文:

$('div.container-inner', $menuContainer).css('background', 'red');