在javascript中获取数组中所有按钮的ID

时间:2014-10-01 03:55:38

标签: javascript jquery arrays cakephp

在我的视图文件中我有两个div,在div1中有一些按钮,当我点击div1中的一个按钮时它会转到div2而在div2中它会做同样的事情,这次它会转到div1。

现在我的问题是当div2中有几个按钮时,如何在数组中获取所有按钮的id。我想将这个数组传递给另一个模型的隐藏字段。

我尝试了以下方式,但它无法正常工作。这是我的脚本代码。

function movebutton(elem){
    var teamMember=[];
    if( $(elem).parent().attr("id") == "officers_list" ){
        $(elem).detach().appendTo('#add_member');
         teamMember.push($(elem).attr("id"));
    }
    else{
        $(elem).detach().appendTo('#officers_list'); 
        teamMember.pop($(elem).attr("id"));

    }
    $("#TeamTeamMember").val(teamMember);

    //console.debug('teamMember=>',teamMember);
}

3 个答案:

答案 0 :(得分:1)

您可以使用地图功能。下面的代码将返回一组id。

$("#divId input[type='button']").map(function(index,element) { return element.id; });

答案 1 :(得分:0)

假设您的第二个div的ID是div2并且您的按钮标有input标记,则以下内容应创建一个包含所有按钮的数组'所需div中的ID:

var btns = [];
$('#div2 input[type="button"]').each(function() {//if you are using the <button> markup just use $('div2 button').each(..)
   btns.push($(this).attr('id'));
});

希望这有帮助。

答案 2 :(得分:0)

teamMember的范围是本地的.so每当你调用你的函数时,它都会创建一个新的空数组 让它全球化

var teamMember=[];
       function movebutton(elem){
        if( $(elem).parent().attr("id") == "officers_list" ){
            $(elem).detach().appendTo('#add_member');
             teamMember.push($(elem).attr("id"));
        }
        else{
            $(elem).detach().appendTo('#officers_list'); 
            teamMember.pop($(elem).attr("id"));
        }
        $("#TeamTeamMember").val(teamMember);
        //console.debug('teamMember=>',teamMember);
    }

或您可以使用$.map()功能

var teamMember = $("#add_member").find("button").map(function(){
return this.id;
}).get();