我有一大堆divs
有一个名为ofint
的类。他们每个人都可能有其他课程。我想存储有关每个div的信息,然后打印出来。
所以我试图遍历类ofint
的所有div并将div id
及其classes
存储在数组中。我的想法是稍后我将搜索数组,但是现在我需要创建它并确保它存储正确的信息。
我知道如何到达那里,但不能完全实现。如何完成此操作然后打印数组以进行双重检查?
var myarr = new array;
$(".ofint").each(function(){
//store the div id and div classes in the array
myarr[this.id][classes] = //the list of classes;
});
//print the array here
答案 0 :(得分:6)
我认为你所追求的是这样的:
var myarr = [];
$(".ofint").each(function(){
myarr.push({ id: this.id, classes: this.className.split(" ") });
});
您可以将输出打印到正文,例如:
$.each(myarr, function() {
$(document.body).append("ID:<b>"+this.id+"</b> - " +
this.classes.join(', ') + "<br />");
});
You can give it a try here,在这种情况下,我们存储一个具有2个属性的对象数组,id
和一个类数组,输出只是循环并将这两个属性转储到页面
答案 1 :(得分:4)
Nick Craver已经为您提供了一个解决方案,但我只是发布此信息来指出原始代码中的一些错误:
Array
,而不是array
。简写符号[]
也是等效的。myarr
用作二维数组,即myarr[this.id][classes]
:首先,您需要像外部数组一样初始化内部数组,其次,{{1}应该是一个字符串,因为你想将它存储在那个确切的名称下。所以你原来的代码应该是这样的:
classes
答案 2 :(得分:3)
正如我之前在SO中所说的那样,如果您使用的是Mozilla Firefox,alert(myarr.toSource())
应足以满足简单的调试目的。如果您已经有一个用于打印调试值的div,也可以$('#debugconsole').text(myarr.toSource())
。
否则考虑安装Firebug,因为它附带了更多的调试工具(比如在现场调整HTML元素以查看更改)
答案 3 :(得分:2)
我强烈建议安装firebug,一个firefox插件。安装完成并且其控制台激活后,您可以执行console.log(myarr);
在控制台中,只需单击刚生成的输出并分析数组即可。在我看来,没有firebug,没有js开发=)
对于你的方法,这应该可以正常工作:
$('.ofint').each(function() {
console.log($(this).attr("class"));
});
或
$('.ofint').each(function() {
$("body").append($(this).attr("class")+"<br />");
});
如果你只是想要身体
但你也可以通过firebug分析操作的html。