私はいくつかのページを含む配列を持っています:
var pages = ['test', 'blabla', 'xyz'];
私のドキュメントには、次のようなリンクが含まれています。
<a href="test.php">tes</a>
<a href="blabla.php">blabla</a>
<a href="xyz.php">xyz</a>
<a href="stackoverflow.php">test2</a>
私が欲しいのは次のとおりです。
ドキュメント全体を検索して、配列内の単語で始まるすべてのリンクを見つけたいと思います。次に、「。php」を「.html」に置き換えて、現在のURL(ファイルなし)をそれらの前に追加します。
location.href.substring(0,location.href.lastIndexOf('/')+1)
したがって、期待される結果は次のようになります。
<a href="file:///C:/test.html">test</a>
<a href="file:///C:/blabla.html">blabla</a>
<a href="file:///C:/xyz.html">xyz</a>
<a href="stackoverflow.php">xyz</a>
私が試したのはこれです:
$(function(){
var pages = ['test', 'blabla', 'xyz'];
$.each(pages, function(index, value) {
$("a[href='" + value + ".php']").attr("href", location.href.substring(0,location.href.lastIndexOf('/')+1) + $("a[href='" + value + ".php']").attr("href").replace('php', 'html'));
});
});
これは機能しますが、常にではありません。私はこれをより大きなドキュメントで試しましたが、このエラーで終了します:
$( "a [href ='" + value + ".php']")。attr( "href")は未定義です
私は、より簡単で、より良く、より互換性のある方法があると思います。しかし、私には手がかりがないので、ここで尋ねます:D