2013-04-04 40 views
0

我有搜索jquery文档和SO,但我无法找到我究竟是什么。jquery ajax与html元素数组

我在PHP创建跨度,使他们遵循的模式:我想收集所有的数字中的id属性并将它们作为一组数据(如果需要的话JSON)

<span class="om" id="o_1"></span> 
<span class="om" id="o_3"></span> 
... 

到通过AJAX的服务器,并将结果返回到功能:

$.get("/pages/gOboxMeters", function($("span.om") <-- extract id's here) {alert(data);}) 

我只是alert荷兰国际集团现在它。

什么是正确的代码?

感谢

回答

1

您可以使用map

Live Demo

numbers = $('.om').map(function(){ 
    return this.id.replace('o_', ''); 
}).get().join(','); 

jQuery.get("/pages/gOboxMeters", "yourVariable: " + numbers, 
    function(){alert(""sent); 
}); 

您可以使用其它分隔符的加入

+0

我会''替换(/ [^ 0-9]/g,'')'以获得额外的健壮性,但+1。此外,'var'关键字避免全局。 – karim79 2013-04-04 10:59:53

+0

@ karim79那么get函数做ajax? (我把网址放在那里?)或者我只是传递'数字'作为数据?优秀简洁的答案顺便说一句 – khany 2013-04-04 11:02:24

1

您还可以创建一个arraypush在与jQuery

See Demo

var num = new Array; 

$(".om").each(function(){ 
     num.push($(this).attr("id").replace("o_","")); 
     $("#result").append($(this).attr("id").replace("o_","")+"<br>"); // just to show result visually 
}); 
0

each功能可以收集和发送的值这样

$(document).ready(function(){ 
var value = [] 

$('span.om').each(function(){  
value.push($(this).attr('id'))}); 
alert(value); 
    $.get("/pages/gOboxMeters",{value : value }, function(){}); 

}); 

实施例该数组中的值:http://jsfiddle.net/X5r8r/1120/

0

可以使用.each() jQuery函数:

var arr = []; 
    $('span.om').each(function(index, item){arr.push($(item).attr('id').substring(2));}) 

在这同一个页面的控制台我尝试以下,和它的作品的权利:

var arr = [] 
$('.mainnavs a').each(function(index, item){arr.push($(item).attr('id').substring(4));}) 

在此之后,用于进一步处理ARR变量。