2015-06-01 30 views
0

後,我想創建以下HTML:jQuery的嵌套使用

<div> 
    <img src="random.png"> 
    <input type="radio"> 
    <input type="radio"> 
</div> 

這裏是jQuery代碼:

$("#main").append(
    $("<div>").append(
     $("<img>").after(
     $("<input>").attr({type:"radio", value:"Manmade", checked:"checked"}).after(
      $("<input>").attr({type:"radio", value:"Natural"}) 
     ) 
    ) 
    ) 

不過只有圖像出現了,而不是按鈕。我該如何解決這個問題?

<div id="275"> 
    <img src="random.png"> 
</div> 
+3

簡化代碼分離,添加多種元素有什麼用這麼多的嵌套? – Satpal

+0

'後'後'通常不會在一個單一的DOM節點不是DOM的一部分,因爲沒有父,兄弟姐妹或其他任何東西來確定真正的地方,不僅如此,但選擇器仍然只返回DIV ,所以其他元素將丟失 – adeneo

回答

4

after是沒有意義在這裏,如果你想將東西在追加的東西后,就其追加後。

你可以只用逗號

$("#main").append(
    $("<div />").append(
     $("<img />"), 
     $("<input />", { 
      type : "radio", 
      value : "Manmade", 
      checked : "checked" 
     }), 
     $("<input />", { 
      type : "radio", 
      value : "Natural" 
     }) 
    ) 
) 

FIDDLE

+0

您可以使用這樣的佔位符圖像,以便人們可以看到圖像部分也可以工作:http://placehold.it/100x100 – BSMP

+0

@BSMP - 好主意,更新小提琴,謝謝 ! – adeneo

+0

謝謝!還有一個問題:如何讓文字顯示出來? –