对象不支持 属性 或方法 'slice'

Object doesn't support property or method 'slice'

我是 Javascript/Jquery 世界的新手。 我有一个带有多个链接的 div,我想收集 url 的 .

然后我想从那些 href 中提取最后 9 个字符(实际上我想优化它并独立地收集每个字符串末尾的数字)。我试图用 slice() 方法,但它不起作用。

在控制台中,错误是

Object doesn't support property or method '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>

您看到对象不支持,因为 $.each returns 一个 jQuery 对象。

改用 .map() 因为它 returns 切片可以在其上工作的数组

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

结果会是

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

如果你想得到一个 hrefs 数组,每个 hrefs 的最后九个字符 link 你可以这样使用 map

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 

试试下一个:

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]]