2014-02-16 62 views
0

從列表中選擇一個對象下面是一個最小的版本,我的問題,因爲:附加到jQuery中

<div class="foo"> 
    <div class="a"> </div> 
    <div class="b"> </div> 
    <div class="c"> </div> 
</div> 

我想元素<div class="bar">WORKS!</div>插入隨機的孩子中的一個。

var kids = $(.foo).children(); 
var idx = Math.floor(Math.random() * kids.length); 
var target = kids[idx]; 

我認爲這是javascript和jQuery如何協同工作的一個誤解。我此刻的同時學習,所以這裏是我的解決問題的盡職調查:

  • target.append(...),因爲目標不是一個jQuery對象和.append()是一個jQuery調用失敗。
  • $(target).append(...)做了奇怪的事情,在DOM中複製項目,我不明白爲什麼。它可能在這個孤立的例子中起作用,但它引起了許多foo's,a's,b's和c's的瘋狂小鎮。
  • target.innerHTML=...似乎不起作用,我不想用append刪除任何以前的內容。

回答

2

嘗試,

var target = kids.eq(idx); 

代替,

var target = kids[idx]; 

請仔細閱讀here更多地瞭解.eq()

1

嘗試.eq()

var target = kids.eq(idx);