JavaScript - 获取数组中的最后一项

bal*_*der 44 javascript dom

这是我的代码:

 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];
 }
Run Code Online (Sandbox Code Playgroud)

我希望linkElementLink.href除了数组中的最后一项之外的所有内容.现在它被打破了,它之前的项目得到倒数第二个项目.

Gum*_*mbo 52

我不太确定你要做什么.但您可以使用slice切片数组:

loc_array = loc_array.slice(0, -1);
Run Code Online (Sandbox Code Playgroud)


bob*_*nce 45

pathname优先使用href以仅检索链接的路径部分.否则,如果存在?query#fragment后缀,或者路径为/(无父级),则会得到意外结果.

linkElementLink.href= location.pathname.split('/').slice(0, -1).join('/');
Run Code Online (Sandbox Code Playgroud)

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

linkElementLink.href= '.';
Run Code Online (Sandbox Code Playgroud)

不要这样做:

linkElement.innerHTML=loc_array[loc_array.length-2];
Run Code Online (Sandbox Code Playgroud)

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

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


Bri*_*unt 21

如果使用lodash,可以使用_.initial(array):

_.initial(array):获取除数组的最后一个元素之外的所有元素.

例:

_.initial([1, 2, 3]);
// ? [1, 2]
Run Code Online (Sandbox Code Playgroud)