2010-04-06 43 views
0

這裏有兩個div從一個DIV獲取ID到另一個DIV

<div id="1"> 

<span id="a1">first</span> 
<span id="a2b">first</span> 
<span id="a3">first</span> 

</div> 

點擊

<div id=2></div> 

而jQuery代碼做

$('#2').bind('click',function(){ 
      var xx = $('#a'+i).attr('id'); 
      $('#2').append(xx); 
      i=i+1; 
     }); 

它沒有得到所有來自#1的3位身份證號碼1

謝謝 Jean

+0

首先,你不應該用一個整數開始你的id。除此之外,你還沒有很好地描述你想要做什麼,以及與你現在取得的成果有什麼不同。 – 2010-04-06 11:30:03

+0

@david請放手,關注答案,我改變了代碼爲stackoverflow – X10nD 2010-04-06 11:36:38

+8

你的大部分問題都不清楚,而且你對那些試圖幫助每個**問題的人*問,沒有人希望社區中的用戶那樣。要麼學習如何接受幫助,要麼停止提問。 – 2010-04-06 11:38:55

回答

1

首先,元素ID應以字母或下劃線字符開頭。所有第二,試試這個:

$("#second").click(function() { 

    // grab the ids of the first div's spans into an array 
    var ids = $("#first span").map(function() { 
     return this.id; 
    }).get(); 
    alert(ids); 

    $(this).append(ids.join(",")); // or whatever 
}); 

http://api.jquery.com/map/

+0

@ karim79請放手讓我的小竅門,專注於幫助我解決答案,我改變了代碼爲stackoverflow – X10nD 2010-04-06 11:37:12

+0

如果你仔細看,你會看到上面的例子從第一個div的元素中獲取三個ID,並將它們存儲在變量'ids'中。 – karim79 2010-04-06 11:39:17

+0

讓我試試看,如果沒有數組,我不可能做到這一點,我猜不是。 – X10nD 2010-04-06 11:56:36

0

在你的點擊函數,變量「我」被設置前使用,這也許可以解釋你的問題。

你可以檢查初始化變量是否有幫助嗎?

0

你可以試試這個:

$('#2').bind('click',function(){ 
     var dest = $(this); 
     $("#1").find("span").each(function(){ 
      dest.append($(this).attr('id')); 
     }); 
    }); 
0

很難說你想要什麼,但不能這樣做移動的所有元素:

$("#1").children().appendTo("#2")