Javascript Can';t在每个父div/类中获取子div id
当我尝试在每个父div/类中获取子div id时,我会收到错误“UncaughtTypeError:无法设置未定义的属性“0”。我将此javascript与scriptaculous一起使用,因此我关闭了“$”快捷方式 HTML示例:Javascript Can';t在每个父div/类中获取子div id,javascript,jquery,multidimensional-array,Javascript,Jquery,Multidimensional Array,当我尝试在每个父div/类中获取子div id时,我会收到错误“UncaughtTypeError:无法设置未定义的属性“0”。我将此javascript与scriptaculous一起使用,因此我关闭了“$”快捷方式 HTML示例: <div id="group1" class="section"> <h3 class="handle"><input type="hidden" name="groupName1" value="MyGroup1">
<div id="group1" class="section">
<h3 class="handle"><input type="hidden" name="groupName1" value="MyGroup1">MyGroup1</h3>
<div id="item_73548" class="lineitem">item a</div>
<div id="item_73386" class="lineitem">item b</div>
<div id="item_73163" class="lineitem">item c</div>
</div>
<div id="group2" class="section">
<h3 class="handle"><input type="hidden" name="groupName2" value="MyGroup2">MyGroup2</h3>
<div id="item_73548" class="lineitem">item d</div>
<div id="item_73386" class="lineitem">item e</div>
<div id="item_73163" class="lineitem">item f</div>
</div>
在这里摆弄:在尝试向数组中添加第二级元素之前,只需确保将
组[i]
设置为数组
$.noConflict();
var sections = document.getElementsByClassName('section');
var groups = new Array();
for (i = 0; i < sections.length; i++) {
var section = sections[i];
var sectionID = section.id;
groups[i] = [];
var j = 0;
jQuery.each(jQuery("#" + sectionID + " .lineitem"), function () {
groups[i][j] = jQuery(this).attr('id');
j++;
});
}
console.log(groups);
$.noConflict();
var sections=document.getElementsByClassName('section');
变量组=新数组();
对于(i=0;i
为什么要混合使用本机DOM访问和jQuery?使用jQuery.forEach获取节,然后对每个jQuery节对象执行选择器,以获取div子项$('.lineitem',this.attr('id')代码>同意,这是使用scriptaculous库用纯javascript编写的更大的遗留脚本的一小部分。所以我只是在我更改的部分上使用jQuery。我希望我有时间从头重写它。
groups[0][0]="item_73548";
groups[0][1]="item_73386";
groups[0][2]="item_73163";
groups[1][0]="item_73548";
groups[1][1]="item_73386";
groups[1][2]="item_73163";
$.noConflict();
var sections = document.getElementsByClassName('section');
var groups = new Array();
for (i = 0; i < sections.length; i++) {
var section = sections[i];
var sectionID = section.id;
groups[i] = [];
var j = 0;
jQuery.each(jQuery("#" + sectionID + " .lineitem"), function () {
groups[i][j] = jQuery(this).attr('id');
j++;
});
}
console.log(groups);