我是Javascript / Jquery世界的新手。 我有一个带有几个链接的div,我想收集网址。
然后我想从那些href中提取最后9个字符(实际上我希望优化它并在每个字符串的末尾独立地收集数字)。我试图用slice()
方法提取它们但它不起作用。
在控制台中,错误是
Object不支持属性或方法'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>
答案 0 :(得分:4)
您看到Object不支持,因为$.each返回一个jQuery对象。
使用.map()代替它,因为它返回一个切片可以工作的数组
var $posts= $('a.entry_title').map(function(){
return $(this).attr('href');
});
结果将是
["link1", "link2", "link3"....] // just a sample
如果您希望获得每个链接的最后九个字符的href数组,您可以使用这种方式映射
var $posts= $('a.entry_title').map(function(){
return $(this).attr('href').slice(-9); // or you can do your own magic
});
结果看起来像这样
["k1", "k2", "k3"....] // after slicing the words
答案 1 :(得分: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]]