2011-07-19 109 views
0

我想用一種我認爲可以工作的簡短符號來檢測一個元素直接的兄弟姐妹。以下是我的代碼:JQuery兄弟縮寫

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

因此,使用$($menuContainer + ' > div.container-inner').css('background', 'red');我試圖找到並更改內部div的背景顏色,而不使用正常的div-id路徑。

是不是有一些這樣做或我誤認爲?

回答

1

$menuContainer是一個對象,您將隱式調用toString,這可能不是您想要的。

我會使用children代替:

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

但是,如果你是這樣的(分開傳遞對象爲根)也適用:

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

Gratuitous live example

1

「$ MenuContainer中「似乎是一個jQuery的對象,而不是一個字符串,我相信你想要的是:

$ menuContainer.children('。container-inner');

1

嘗試使用所述選擇的上下文:

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