2016-11-14 45 views
0

我正在試驗jQuery & Javascript。我試圖創建魚類等的互動海如何選擇附加元素?

我隨機把魚div的頁面上在隨機位置用下面的代碼:

$newfish = $("<div id='fishToLeft'></div>").css({ 
    'left': randomX + 'px', 
    'top': randomY + 'px', 
}) 

$newfish.appendTo('#sea'); 

魚的圖像在配置CSS。

現在我想動畫這些div(它追加了20條魚),但我無法弄清楚如何選擇附加魚div(fishToLeft & fishToRight)。

任何人都可以幫助我嗎?

已解決!而不是所有的魚使用相同的ID,我用同一類,現在它的作品。

感謝您的所有快速解答。

+0

''的document.getElementById( '海' ).querySelectorAll( 「*」);''?不知道jQuery equivelant--我認爲它是''(「#sea」)。children();''。 – Crowes

+5

您已經擁有'$ newfish'中的元素 – adeneo

+3

我認爲您不應該對您的所有魚類使用相同的ID –

回答

1

使用一個類不是一個id,因爲id應該是唯一的。

$newfish = $("<div class='fish'></div>").css({ 

按類選擇:

$('.fish'); 

另外,如果只有魚存在的孩子,那麼就選擇兒童:

$('#sea').children(); 

通過在陣列中存儲的魚引用,您可以避免重新選擇它們:

var fish = []; 
// in your loop 
fish.push($newfish); 

做點什麼每條魚:

$.each(fish, function(){ 

}); 
+0

謝謝,這工作! :) – user3457337

0

此代碼的問題在於,您有多個具有相同標識的元素,這是錯誤的。我會使用class或自定義屬性。例如,用class選擇:

$newfish = $("<div class='fishToLeft'></div>").css({ 
    'left': randomX + 'px', 
    'top': randomY + 'px', 
}) 

$newfish.appendTo('#sea'); 

var $fishesToLeft = $(".fishToLeft"); // array of elements/fishes to left 
+0

謝謝!我將它從id更改爲class,它確實有效。 – user3457337

0

試試這個:

$newfish = $("<div class='fish'></div>").css({ 
    'left': randomX + 'px', 
    'top': randomY + 'px', 
}) 

比方說,你想讓它在點擊事件,則:

$(".fish").on("click", function(){ 
    var myFish = $(this); 
}) 

myFish將包含點擊的元素

0

id是頁面上的一個單一的,獨特的元素。

因此,fishToLeftfishToRight不是ids而是classes

所以,你需要使用:

<div class="fishToLeft"></div> 
<div class="fishToRight"></div> 

後來,當你要要選擇所有的魚,你可以使用:

var fishesToLeft = document.getElementsByClassName('fishToLeft'); 
var fishesToRight = document.getElementsByClassName('fishToRight'); 
+0

謝謝,我的確將它改爲class而不是id! – user3457337