2

私はレスポンシブである必要があるウェブサイトに取り組んでいます。ナビゲーションをに変換したい <select>。内部<nav>には任意の数の任意の数が存在できます。の数を計算するために使用しました。<ul><nav>for loops<nav> and <ul> inside <nav>

1 つは生成され、もう 1 つは生成されません。これを解決するために私を助けてください。

ここにjsfiddleがあります

4

1 に答える 1

1

あなたが探していて、これには直系の子孫.children('ul')しか含まれていないため、機能しませんが、2番目には...navdivul

任意の深さで子孫を探す.children呼び出しを変更できます.find

- ここでカット -

代替ソリューション:

$('nav').each(function(navIndex, navElement) {

    $(this).find('ul').each(function(ulIndex, ulElement) {

        var $sel = $('<select name="nav'+navIndex+'-'+ulIndex+'" />');
        $sel.append('<option value="#">Go to...</option>');
        $sel.change(function() { document.location.href = this.value; });

        $(this).find('li>a').each(function(aIndex, aElement) {
            $sel.append('<option value="' + this.href + '">' + $(this).text() + '</option>');
        });

        $(this).after($sel); // place this select after the ul...

    });
});
于 2012-06-26T10:58:08.327 に答える