2013-12-19 50 views
-1

目前,我有以下几点:获取DIV ID的选择类别?

$(window).load(function(){ 
    $(".boxdiv").click(function() { 
     $(this).toggleClass("selected"); 
    }); 
}); 

这完全不会什么,我需要的第一部分。我有相当数量的div与“boxdiv”类,他们每个都有一个唯一的ID来识别它。我需要做的是在按下按钮时将所有这些div ID与选择的类一起发送到下一页。

任何人都知道我该如何做到这一点?

+0

以及$(本).attr( 'ID')将返回被点击项目 – Huangism

+2

什么做的ID你的意思是“发送到下一页”? –

+0

我需要将DIV ID发送到下一页。 – BN83

回答

1

地图的ID在一个数组,并使用$.param创建一个查询字符串

$('button').on('click', function() { 
    var id_arr = $.map($(".selected"), function(el) {return el.id;}); 
    window.location.href = '/next_page?' + $.param({ids : id_arr}); 
}); 

编辑:

$('button').on('click', function() { 
    var id_arr = $.map($(".selected"), function(el) {return el.id;}), 
     qs = encodeURIComponent(id_arr.join(',')); 

    window.location.href = '/next_page?ids=' + qs; 
}); 
+0

感谢这一点,但我得到: “414请求 - URI太大 请求的URL超过了允许的最大大小!” – BN83

+0

究竟有多少个ID? – adeneo

+0

这样做,如果我选择没有,或一个。但可能会有很多! – BN83

1

也许这是你在找什么:

$(".button").click(function(){ 

    var id_arr = []; 

    $(".boxdiv").each(function(){ // Loop through each element with that class 
     id_arr.push($(this).attr('id')); 
    }); // Loop through each element with that class 

}); 

window.location = 'next.html/ID=' + id_arr.join(','); 

该ID的应存放在id_arr

1

你也可以遍历具有类selected每个div。然后您可以使用attr()访问ID名称。

的Javascript

var ids = []; 

$.each($(".selected"), function() { 
    ids.push($(this).attr('id')); 
}); 

ids = ids.join(','); 

HTML

<div id="boxA"></div> 
<div id="boxB" class="selected"></div> 
<div id="boxC" class="selected"></div> 
<div id="boxD"></div> 

这应返回["boxB", "boxC"]

参见:http://jsfiddle.net/B4V28/1/

+0

然后可以建立一个这样的数组,例如box1,box5,box16吗? – BN83

+0

当然可以。看小提琴。 – Julio

0

提交的所有答案其实正确的 - 但我认为真正的问题是你对jQuery为你做什么的期望。

jQuery将以任何方式收集所有的ID,但您需要有一种方法在下一页收集它们,并且实际上对它们做些什么。这将全部需要发生在服务器端。

最有可能的理想方法是基于您对“潜在可能有很多”的评论,您想要做一个映射(请参阅其他答案),并将json对象传递给您的服务器,它可以通过它到下一页。

代码相同的 -

$('button').on('click', function() { 
    var id_arr = $.map($(".selected"), function(el) {return el.id;}), 
     qs = encodeURIComponent(id_arr.join(',')); 

     alert('/next_page?ids=' + qs); 
}); 

这是给你一个小提琴 - http://jsfiddle.net/kellyjandrews/4dYfh/

+0

说实话,我并不擅长jquery在javascript中,但它是唯一能够做我需要的真正方法。理想情况下,我打算将它们作为“ids = box1,box3,box16”传递给URL,然后使用PHP将这些结果用于我拥有的数据库。 – BN83

+0

你将基本上需要设置什么链接,你必须根据选择动态生成。我会尽快设置一些帮助和更新。 –