jQuery获取文档中的所有href url并截断或拆分它们

jQuery get all href urls in a document and truncate or split them

本文关键字:拆分 url href 文档 获取 jQuery      更新时间:2023-09-26

我快疯了。

我有一个ebay商店菜单,这是通过php动态创建的。

url如下:

 http://stores.ebay.co.uk/somestore/Golf-Shoes-/_i.html?_fsub=3831075010

有几个这样的,由于某种原因我的分裂不工作,我试图删除最后一个斜杠之后的数据。

    $('.MenuItem a:odd').each(function() {
    var $href = $(this).attr('href');
    $href.split('_')[1];
    console.log($href);
});

根据我的逻辑,应该返回:http://stores.ebay.co.uk/somestore/Golf-Shoes-/

我在这里做了一个修改:http://jsfiddle.net/lharby/HA793/1/

我不能离得太远。为了验证这个理论,我也试过用其他角色来分裂,但似乎没有任何效果。我哪里做错了。

直接摘自MDN文档

与C等语言不同,JavaScript字符串是不可变的。这意味着一旦创建了字符串,就不可能修改它。但是,仍然可以基于类创建另一个字符串对原字符串的操作。

分割对正在分割的字符串没有影响。相反,将分割的第一部分分配给一个变量,如

var part = $href.split('_')[0];

你也可以使用最后一个斜杠作为你的参考点,像这样

var part = $href.substring( 0, $href.lastIndexOf( '/' ) + 1 );
这里的

小提琴

试试这个:

$('.MenuItem a:odd').each(function () {
    var href = this.href.split('_')[0];
    console.log(href);
});
<<p> 小提琴演示/strong>
  • 使用this.href
  • 获取href
  • 用字符'_'
  • 分割href
  • 使用split('_')[0]
  • 获取数组的第一部分

你所缺少的只是一个赋值操作符

$href = $href.split('_')[0];

您需要将拆分操作的结果赋值给一个变量,以便稍后使用。

var href = $(this).attr('href');
href = href.split('_')[0];
console.log(href);
http://jsfiddle.net/HA793/5/

另外,当结果实际上是一个jQuery对象时,我建议只使用$变量名前缀。

你应该把分割的结果赋值给变量$href:

$('.MenuItem a:odd').each(function() {
var $href = $(this).attr('href');
$href = $href.split('_')[0] + $href.split('_')[1];
console.log($href);

考虑使用这个函数:http://php.net/manual/en/function.parse-url.php