2008-12-15 62 views
0

如何從這個(最後一個)列表項目中獲取div?jQuery如何在此代碼中獲取div?

目前我有這個,這只是簡單的醜陋...任何建議在清潔選擇器/解決方案?

var div = ul.append("<li><div></div></li>").contents("li:last-child")[0].children[0]; 

謝謝!

+1

BTW:你爲什麼要使用LI內的DIV? – doekman 2008-12-16 18:45:15

回答

1

使用數組索引只返回HTMLElement對象,因此刪除了很多jQuery的有用功能,所以要小心。我傾向於這種方式來解決:

var div = $("<div/>").appendTo($("<li/>").appendTo(ul)); 

從最裏面到最外面,這將創建一個列表項,它追加到列表中,創建一個div,它附加到新的列表元素,並返回該DIV,仍然包裹在jQuery的善良。如果你喜歡,你可以追加數組索引得到公正的HTML元素:

var div = $("<div/>").appendTo($("<li/>").appendTo(ul))[0]; 
0

是否這樣?

var div = ul.append("<li><div></div></li>").contents("li:last-child > div")[0]; 
+0

這將返回列表項... – Kieron 2008-12-15 16:45:54

0

這個什麼:

ul.append("<li><div></div></li>").contents("li:last-child > div").get(0); 
+0

這將返回列表項... – Kieron 2008-12-15 16:46:37

2

你可以去有關平添幾分不同太:

var div = $('<div/>'); 
// do whatever you need to do with the div 
$('<li/>').appendTo(ul).append(div); 
0

此,我想:

var div = ul.append('<li><div></div></li>').find("li:last div"); 
0

怎麼樣這個:

var div = $('<li><div/></li>').appendTo(ul).find('div'); 
0

只是爲了完整性:

var div = $('<div></div>').appendTo($("<li></li>").appendTo(ul)); 
0
var div = ul.append("<li><div></div></li>").find('div').get(0); 

我認爲這是你在找什麼。

0

我的解決辦法是:

var div = ul.append("<li><div></div></li>").find("div:last");