0

スクリプトを作成します。それは要素のhrefを取得します。しかし、この URL の最後の部分だけが必要です。私はこれを作ります:

var newURL = $(".list-portfolio a").attr("href");
    pathArray = newURL.split( '/' ),
        secondLevelLocation = pathArray[0];

    var newPathname = "";
    for ( i = 3; i < pathArray.length; i++ ) {  
      newPathname += "/";
      newPathname += pathArray[i];
    }

これにより、これは/portfolio/ruimzicht.htmlほぼ良好です。最初の / を削除するにはどうすればよいですか。

コードを改善するためのヒントはありますか?

4

4 に答える 4

2

なぜ配列関数を使用しないのですか?

var pathArray = ["portfolio", "ruimzicht.html"];

// build a string by inserting a forward slash between all elements
pathArray.join("/");

// results in: portfolio/ruimzicht.html

とにかく最後の部分だけに興味がある場合は、これを 1 つのライナーに縮小できます。

url.split("/").pop(); // yields "ruimzicht.html"
于 2012-08-09T16:50:04.777 に答える
0
newPathname = newPathname.trim("/");
于 2012-08-09T16:50:22.477 に答える
0

このように URL を解析すると、コードが脆くなり、バグが発生しやすくなると思います。すべての文字列分割および/または正規表現操作を行う代わりに、 jQuery-URL-Parser のようなサードパーティのプラグインを使用できます。これにより、要素から URL を取得し、それをさまざまな部分に分解できます。ファイル名やホスト名などにアクセスします。これは、あなたのケースでの使用方法の例です。

var url = $.url($(".list-portfolio a").attr("href"));
url.attr('file'); // this will give you ruimzicht.html

これにより、コードが単純になり、読みやすく、維持しやすくなります。

于 2012-08-09T16:51:51.270 に答える
0

の最初の連結を避けるために、これを使用してみてください/:

for ( i = 3; i < pathArray.length; i++ )
{  
    if(i != 3)
        newPathname+= "/";

    newPathname += pathArray[i];
}
于 2012-08-09T16:46:33.873 に答える