Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery обработка списка (https://javascript.ru/forum/jquery/18651-jquery-obrabotka-spiska.html)

RAMSlader 10.07.2011 00:20

Jquery обработка списка
 
Здравствуйте уважаемые форумчане.
Пытаюсь получить из моего меню данные.
<div class="menu1">
  <ul>
    <li class="category">1</li>
    <li><a href="/url1/">2</a></li>
    <li><a href="/url2/">3</a></li>
    <li><a href="/url3/">4</a></li>
  </ul>
</div>


$('#menu_save').click(function () { 
  var menu = {};
	//$('.menu1 ul li').each(function (i) {
  $('.menu1 ul li a').each(function (i) {
    if ($(this).length > 0) {
       menu['menu1[' + i + '][href]'] = this.href;
       menu['menu1[' + i + '][text]'] = this.text;
    }
  });

  $.ajax({
    url: '/admin/ajax/',
    type:'POST',
    dataType: 'json',
    data: menu
  });
});

Все прекрасно работает для случая когда в списке все элементы содержать ссылку. Но из за элемента списка без ссылки (данный элемент может быть в любом месте списка) я его не могу его получить.

//хочу получить в json
menu1[0][href] not
menu1[0][text] 1
menu1[1][href] url1
menu1[1][text] 2
menu1[2][href] url2
menu1[2][text] 3
menu1[3][href] url3
menu1[3][text] 4

Помогите мне пожалуйста подправить мой скрипт.

TicTac 10.07.2011 01:42

как то так
$('#menu_save').click(function () {
  var menu = {};

  $('.menu1 ul li').each(function (i) {
      if($(this).has("a").length){
        menu['menu1[' + i + '][href]'] = $(this).children().attr("href");
        menu['menu1[' + i + '][text]'] = $(this).children().text();
      }
      else{
        menu['menu1[' + i + '][href]'] = "not";
        menu['menu1[' + i + '][text]'] = $(this).text();
      }
  });

RAMSlader 13.07.2011 12:27

TicTac Спасибо


Часовой пояс GMT +3, время: 00:25.