2015-04-10 3 views
0

Я посмотрел и попытался найти ответ на этот вопрос, но я не могу найти что-либо. или не знаете правильные слова, которые нужно искать.jquery traverse dom с точечной нотой

по существу им работать с этим HTML:

<article> 
<a href="link.com"> 
    <div class="item" id="1"> 
     <div class="description"> 
      <div class="number">#532567</div> 
      <a href="1.html">see more</a> 
     </div> 
    </div> 
</a> 
<a href="link.com"> 
    <div class="item" id="2"> 
     <div class="description"> 
      <div class="number">#533581</div> 
      <a href="2.html">see more</a> 
     </div> 
    </div> 
</a> 

по существу, что я хочу сделать, это получить все части этого в цикле, а затем на выходе мой собственный JSON, который лучше расположены, чем html-код.

У меня есть этот Jquery

$(document).ready(function(){ 
    $('article > a').each(function(i,v) { 
     //right now, 't', 'this', and 'v' are all THE SAME OBJECT 
     var href = $(this).attr('href'); 
     var div = $(this).find('.item').html(); 
      var number = div.description.number.val(); 
     console.log('href['+href+'] div['+div+'] number['+number+']'); 
    }); 
}); 

и HREF выходы правильно, но ДИВ не определен, и я получаю «не могу прочитать Свойс описания неопределенных» на номер.

Я хочу использовать точечные обозначения для достижения этой цели. и я хотел бы, чтобы иметь возможность подключиться к: div.item значения идентификатора div.description div.number HTML и т.д.

любых указателей оценили.

+2

Там нет '.card' внутри' a' якоря в предоставленном HTML - возможно, вы имеете в виду '.item'? – ochi

+0

да, извините, карта должна быть предметом –

+0

Можете ли вы показать точный результат, который вы хотите, учитывая HTML, опубликованный в вашем вопросе? –

ответ

1

Я попробовал это, и это, казалось, работало (выбор каждого .item вместо)

$(document).ready(function() { 
    $('.item').each(function (index, value) { 
     //right now, 't', 'this', and 'v' are all THE SAME OBJECT 
     var href = $(value).parent().find('a').attr('href'); 
     var divId = $(value).attr('id'); 
     var number = $(value).find('.number').html(); 
     console.log('href[' + href + '] div[' + divId + '] number[' + number + ']'); 
    }); 
}); 

FIDDLE

0

Возможно, эта помощь.

Javascript:

$(document).ready(function(){ 
    $('article > a').each(function(i,v) { 
     //right now, 't', 'this', and 'v' are all THE SAME OBJECT 
     var href = $(this).attr('href'); 
     var div = $(this).find('.item'); 
      var number = div.find('.description .number').html(); 
     console.log('href['+href+'] div['+div.html()+'] number['+number+']'); 
    }); 
}); 
+0

im получение: href [link.com] div [undefined] number [undefined] –

+0

Это, вероятно, не работает, потому что вы вложили тег в другой тег . –

+0

[FIDDLE] (https://jsfiddle.net/02etbob9/1/) Мне кажется, что вы ошибаетесь. –

Смежные вопросы