2015-07-05 4 views
0

Я новичок в мире Javascript/JQuery. У меня есть div с несколькими ссылками, и я хочу собрать url.Объект не поддерживает свойство или метод 'slice'

Затем я хочу извлечь из этих девяти символов href (на самом деле я хочу оптимизировать его и собирать цифры независимо длины в конце каждой строки). Я попытался извлечь их с помощью метода slice(), но он не работа.

В консоли ошибка

Объект не поддерживает свойство или метод «срез»

Могу ли я преобразовать объект в строку? Ваша помощь приветствуется! Код следующие

$(document).ready(function(){ 

    var $posts= $('a.entry_title').each(function(){ 
    $(this).attr('href'); 
    }); 

    var posts1 = $posts[0].slice(-9); 
    var posts2 = $posts[1].slice(-9); 

    var posts = ["MyURL"+ posts1,"MyURL"+posts2] 
    $('#div1').load(posts[0] + " .shadow3"); 
    $('#div2').load(posts[1] + " .shadow3"); 

}); 
</script> 

ответ

5

Вы видите объект не поддерживает, потому что $.each возвращает объект JQuery.

Использование .map() вместо потому что он возвращает массив, на котором срез будет работать

var $posts= $('a.entry_title').map(function(){ 
    return $(this).attr('href'); 
}); 

Результат будет

["link1", "link2", "link3"....] // just a sample 

Если вы хотите, чтобы получить массив hrefs с последних девяти символов каждого звена вы можете использовать карту таким образом

var $posts= $('a.entry_title').map(function(){ 
    return $(this).attr('href').slice(-9); // or you can do your own magic 
}); 

Результат будет выглядеть как t его

["k1", "k2", "k3"....] // after slicing the words 
+1

работает как шарм !!! Огромное спасибо!!! – alipkok

0

Попробуйте следующий:

var hrefs = []; // list of collected and sliced hrefs. 
var $posts= $('a.entry_title').each(function() { 
    // slice & push each href into list. 
    hrefs.push($(this).attr('href').slice(-9)); 
}); 
console.log('href list:', hrefs); // control result. 
var posts = ["MyURL"+ hrefs[0],"MyURL"+hrefs[1]] 
Смежные вопросы