3

これは私を夢中にさせています。

PHPを介して動的に作成されるebayストアメニューがあります。

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/

私はあまりにも遠くにいることはできません。理論をテストするために他のキャラクターでも分割しようとしましたが、何もうまくいかないようです. どこが間違っているのですか。

4

6 に答える 6

3

MDN ドキュメントからそのまま

C などの言語とは異なり、JavaScript の文字列は不変です。つまり、文字列が作成されると、それを変更することはできません。ただし、元の文字列の操作に基づいて別の文字列を作成することは可能です。

分割は、分割する文字列には影響しません。代わりに、分割の最初の部分を次のように変数に割り当てます

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

次のように、最後のスラッシュを参照点として使用することもできます

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

ここでフィドル

于 2013-06-10T11:44:46.770 に答える
2

これを試して:

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

フィドルのデモ

  • を使用して href を取得しますthis.href
  • href を char で分割します'_'
  • を使用して配列の最初の部分を取得しますsplit('_')[0]
于 2013-06-10T11:43:02.460 に答える
1

欠けているのは代入演算子だけです

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

于 2013-06-10T11:44:33.863 に答える
1

後で使用するには、分割操作の結果を変数に割り当てる必要があります。

var href = $(this).attr('href');
href = href.split('_')[0];
console.log(href);

http://jsfiddle.net/HA793/5/

さらに、結果が実際に jQuery オブジェクトである場合は、$ 変数名のプレフィックスのみを使用することをお勧めします。

于 2013-06-10T11:45:06.093 に答える
-1

この関数の使用を検討してください: http://php.net/manual/en/function.parse-url.php

于 2013-06-10T11:44:54.127 に答える