JavaScript - 获取数组中除最后一项以外的所有项

新手上路,请多包涵

这是我的代码:

  function insert(){
  var loc_array = document.location.href.split('/');
  var linkElement = document.getElementById("waBackButton");
  var linkElementLink = document.getElementById("waBackButtonlnk");
  linkElement.innerHTML=loc_array[loc_array.length-2];
  linkElementLink.href = loc_array[loc_array.length];
 }

我想要 linkElementLink.href 获取数组中除最后一项以外的所有内容。现在它坏了,它之前的项目得到倒数第二个项目。

原文由 balexander 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

使用 pathname 优先于 href 仅检索链接的路径部分。否则,如果有 ?query#fragment 后缀,或者路径是 / (abb72).–,你会得到意想不到的结果。

 linkElementLink.href= location.pathname.split('/').slice(0, -1).join('/');

(但是,当然你可以说:)

 linkElementLink.href= '.';

不要这样做:

 linkElement.innerHTML=loc_array[loc_array.length-2];

从任意字符串设置 HTML 是危险的。如果您获取此文本的 URL 包含 HTML 中的特殊字符,例如 <& ,用户可以注入标记。如果您可以在 URL 中获得 <script> (您不应该这样做,因为它无效,但无论如何某些浏览器可能会让您这样做),您就会遇到跨站点脚本安全漏洞。

要设置元素的文本而不是 HTML,请使用 document.createTextNode('string') 并将其附加到元素,或者分支代码以使用 innerText (IE) 或 textContent (其他现代浏览器)。

原文由 bobince 发布,翻译遵循 CC BY-SA 3.0 许可协议

我不太确定你要做什么。但是您可以使用 slice 对数组进行切片:

 loc_array = loc_array.slice(0, -1);

原文由 Gumbo 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏