首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法在Joomla ChronoForms中调用null - Javascript类型错误的方法“每个”

TypeError:无法在Joomla ChronoForms中调用null - Javascript类型错误的方法“每个”
EN

Stack Overflow用户
提问于 2012-11-29 21:15:29
回答 3查看 3K关注 0票数 0

我试图用Joomla ChronoForms做一个“双”下拉列表,但是当我从第一个下拉列表中选择某个内容时,页面上出现了一个Javascript错误,下面是我的代码:

代码语言: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代码是:

代码语言:javascript
复制
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的帖子,也许它能帮人找到问题,我已经试过了。::(请有人

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-29 22:14:28

好的,如果是joomla最有可能是MooTools,但不确定是哪个版本,请尝试更改选择器

$(#食谱组).each(函数(El) {el.remove()});

$$(‘#食谱组’).each(函数(El) {el.remove()});

票数 2
EN

Stack Overflow用户

发布于 2012-11-29 21:23:35

代码语言:javascript
复制
$('chapter')

如果它不是一个元素,它应该是

$('#chapter') ID$('.chapter') Class

$('recipe')应该是$('#recipe')

另外,如果您认为这一行是jQuery

代码语言:javascript
复制
$('chapter').addEvent('change', function() {

它应该是

代码语言:javascript
复制
 $('#chapter').on('change', function() {

我从未在javascript中听说过.addEvent

应该是香草javascript中的attachEventeventListener

票数 1
EN

Stack Overflow用户

发布于 2012-11-29 21:26:10

尝试一下:$('#recipe').find('optgroup').eachА,您是否确定在每个方法调用已在dom中创建的组合框时?尝试使用setTimeout函数

代码语言:javascript
复制
setTimeout(function(){
    $('#recipe').find('optgroup').each.....
}, 1000);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13634864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档