我试图用Joomla ChronoForms做一个“双”下拉列表,但是当我从第一个下拉列表中选择某个内容时,页面上出现了一个Javascript错误,下面是我的代码:
<select id="recipe" name="recipe">
<optgroup label="test" id="ch_1">
<option value="blabla">something here</option>
<option value="blabla">something here</option>
</optgroup>
<optgroup label="test244" id="ch_2">
<option value="blabla">something here</option>
<option value="blabla">something here</option>
</optgroup>
<optgroup label="testtt" id="ch_3">
<option value="blabla">something here</option>
<option value="blabla">something here</option>
</optgroup>
<optgroup label="testt23521" id="ch_4">
<option value="blabla">something here</option>
<option value="blabla">something here</option>
</optgroup>
<optgroup label="teeesstt" id="ch_5">
<option value="blabla">something here</option>
<option value="blabla">something here</option>
</optgroup>
</select>JS代码是:
window.addEvent('load', function() {
var num_groups = 5;
var groups = new Array;
for ( var i = 1; i <= num_groups; i++ ) {
groups[i] = $('ch_'+i);
$('ch_'+i).remove();
}
$('chapter').value = '';
$('chapter').addEvent('change', function() {
var group_no = $('chapter').value;
if ( !group_no ) {
return;
}
$('#recipe optgroup').each(function(el) {el.remove()});
$('recipe').appendChild(groups[group_no]);
});
});我收到的JS错误是:TypeError:无法调用方法‘每一个’的空
你能帮我一下吗?谢谢
这是论坛上关于这个链接或link2的帖子,也许它能帮人找到问题,我已经试过了。::(请有人
发布于 2012-11-29 22:14:28
好的,如果是joomla最有可能是MooTools,但不确定是哪个版本,请尝试更改选择器
$(#食谱组).each(函数(El) {el.remove()});
至
$$(‘#食谱组’).each(函数(El) {el.remove()});
发布于 2012-11-29 21:23:35
$('chapter')如果它不是一个元素,它应该是
$('#chapter') ID或$('.chapter') Class
$('recipe')应该是$('#recipe')
另外,如果您认为这一行是jQuery
$('chapter').addEvent('change', function() {它应该是
$('#chapter').on('change', function() {我从未在javascript中听说过.addEvent
应该是香草javascript中的attachEvent或eventListener
发布于 2012-11-29 21:26:10
尝试一下:$('#recipe').find('optgroup').eachА,您是否确定在每个方法调用已在dom中创建的组合框时?尝试使用setTimeout函数
setTimeout(function(){
$('#recipe').find('optgroup').each.....
}, 1000);https://stackoverflow.com/questions/13634864
复制相似问题