2013-12-19 66 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

你將基本上需要設置什麼鏈接,你必須根據選擇動態生成。我會盡快設置一些幫助和更新。 –