2013-10-10 4 views
0

У меня есть меню на основе формы, которое автоматически заполняет выбранные параметры содержимым первичного UL. Он чудесным образом увеличивает отметки, отражающие позиции меню.Добавление HREF для динамического заполнения JQuery Выберите

Однако он не заполняет HREF-ссылки ссылок в UL.

Это код, который у меня есть:

<script> 
     $(function() { 
       var options = '<option selected></option>'; 

       $('#primary-nav').find('a').each(function() { 
        var text = $(this).text(), 
        depth = $(this).parent().parents('ul').length, 
        depthChar = '', 
        i = 1; 
        for (i; i < depth; i++) { depthChar += '&ndash;&nbsp;'; 
         } 
        options += '<option>' + depthChar + text + '</option>'; 
       }); 
       $('<select id=\'mobile-menu\' />').append(options).appendTo('#mobile-nav'); 

       $("#primary-nav select").change(function() { 
        window.location = $(this).find("option:selected").val(); 
       }); 

      }); 


     </script> 

мне нужно каким-то образом добавить ниже выше, так что при нажатии на выбранный вариант идет в URL, а не URL-адрес на основе отображаемого значения ;

$("#primary-nav a").each(function() { 
var el = $(this); 
$("<option />", { 
"value" : el.attr("href"), 
"text" : el.text() 
}).appendTo("#primary-nav select"); 
}); 

Может кто-нибудь посоветует мне, как я могу это сделать?

спасибо.

ответ

0

Вы можете просто добавить атрибут значение в текущем коде:

$('#primary-nav').find('a').each(function() { 
    var text = $(this).text(), 
     href = $(this).attr('href'), 
     depth = $(this).parent().parents('ul').length, 
     depthChar = '', 
     i = 1; 
    for (i; i < depth; i++) { 
     depthChar += '&ndash;&nbsp;'; 
    } 
    options += '<option value="'+href+'">' + depthChar + text + '</option>'; 
}); 
$('<select id=\'mobile-menu\' />').append(options).appendTo('#mobile-nav'); 
Смежные вопросы