2

私はJavascriptに非常に慣れていません。エラーが発生しています:

キャッチされていない TypeError: null のプロパティ 'children' を読み取れません fiddle.jshell.net:1163 (無名関数)

エラーを修正するには?

以下に私のフィドルを提供します:

http://jsfiddle.net/N3GTy/29/embedded/result/

var slider = new Swipe(document.getElementById('slider'), {
    callback: function(e, pos) {

        var i = bullets.length;
        while (i--) {
            bullets[i].className = ' ';
        }
        bullets[pos].className = 'on';

    }
}),

bullets = document.getElementById('position').getElementsByTagName('em'),

// tabs
tabs = new Swipe(document.getElementById('tabs'), {
    callback: function(event, index, elem) {
        setTab(selectors[index]);
    }
}),

selectors = document.getElementById('tabSelector').children;
Uncaught TypeError: Cannot read property 'children' of null

for (var i = 0; i < selectors.length; i++) {
    var elem = selectors[i];
    elem.setAttribute('data-tab', i);
    elem.onclick = function(e) {
        e.preventDefault();
        setTab(this);
        tabs.slide(parseInt(this.getAttribute('data-tab'), 10), 300);
    }
}
4

1 に答える 1

4

「tabSelector」の ID を持つ要素はありません。したがって、document.getElementById('tabSelector') は null を返します。次のようにして、chromeのデバッガーでこれをテストしました。

http://fiddle.jshell.net/N3GTy/29/show/light/

Chrome デバッガー コンソールから次の 2 つのコマンドを実行します。

document.getElementById('slider'); 期待どおりに domNode を返します。

document.getElementById('tabSelector'); 存在しないため、null を返します。

null.children を呼び出すと、エラーが発生します。

于 2013-02-08T01:32:03.617 に答える