2015-11-29 2 views
1

Я работаю над созданием сценария Greasemonkey (JavaScript + JQuery), который считывает данные со страницы. Мне подарили код, например:JQuery Manipulate Children of Div Set

<div class="section"> 
    <div class="history-giveaway-name"> 
      <a href="www.google.com">Text!</a> 
    </div> 
    <div class="history-giveaway-state"> 
      // More stuff here 
    </div> 
</div> 
<div class="section"> 
    <div class="history-giveaway-name"> 
      <a href="www.bing.com">Text!</a> 
    </div> 
    <div class="history-giveaway-state"> 
      // More stuff here 
    </div> 
</div> 

Я пытаюсь получить данные из этих div. У меня есть разделы div, хранящиеся в виде списка, но я не могу понять, как получить div, например, «история-раздача-имя». Конечной целью является получение данных от детей, например, ссылка от одного из hrefs.

Вот где я до сих пор, не знаю, где я ошибся. Я получаю эту ошибку: "", но обнаружено всегда 3. Методы JQuery типа type() также не работают с разделами [x].

var detected = 0; 
var sections = $('[class$="section"]'); 
for (var i = 0; i < sections.length; i++) { 
    editDialogText(sections[i].type()); 
    detected += 1; 
} 

ответ

0

С Jquery, вы можете использовать .each перебрать и сделать что-то вроде:

JS Fiddle

var detected = 0; 
// Simplify how you specify the section class 
var sections = $('.section'); 

sections.each(function() { 
    // Get the URL within that section 
    var link = $(this).find('a').attr('href'); 
    console.log(link); 
    detected +=1; 
    console.log(detected); 
}); 
+0

этот ответ является правильным. но вы должны использовать prop ('href') вместо attr ('href'). [с этой ссылкой] (http://stackoverflow.com/a/25557796/2348806) –

+1

@Sarin Suriyakoon Это зависит от потребностей пользователя. Если пользователю требуется значение атрибута literal, как указано в html, '.attr()' полезно. Если пользователю нужен полный http-url, '.prop()' работает. –

+0

Как я могу получить дочерний элемент по имени класса с помощью этого метода? Еще найти? – StaticShadow

0

Я не уверен, что вы хотите достичь. Я реплицировать свой код в jsfiddle и не получают сообщение об ошибке: https://jsfiddle.net/fezhvm71/

Это то, что я получил:

Text! 
// More stuff here 
Text! 
// More stuff here