1

私は Javascript にかなり慣れていないので、特定のページでスクリプトを実行したり実行したりできないようです。

コンテンツを非表示および再表示するために、メイン ページに次のスクリプトがあります。

$(document).ready(function() {
$(".hidden").hide();
$(".show").html("[+]");
$(".show").click(function() {
    if (this.className.indexOf('clicked') != -1 ) {
        $(this).prev().slideUp(0);
        $(this).removeClass('clicked')
        $(this).html("[+]");
        }
        else {
        $(this).addClass('clicked')
        $(this).prev().slideDown(0);
        $(this).html("[–]");
        }
    });
});

次のようなコーディングが必要です。

URL に「/post/」が含まれている場合はスクリプトを無視し、それ以外の場合はスクリプトを実行します

これは簡単な修正である必要があります。私はそれを機能させることができません。助言がありますか?

4

2 に答える 2

2

ifあなたが探しているのは:

if (window.location.indexOf('/post/') == -1){
    // don't run, the '/post/' string wasn't found
}
else {
    // run
}

indexOf()-1文字列が見つからなかった場合は戻ります。そうでない場合は、文字列の最初の文字が見つかった文字列内のインデックスを返します。

上記は、ジェイソンによって提供された追加の常識で書き直されました(コメントで、以下):

if (window.location.indexOf('/post/') > -1){
    // run, the '/post/' string was found
}
于 2012-06-05T22:04:35.717 に答える
1

この答えによると、

window.location文字列ではなくオブジェクトなので、 indexOf関数はありません。

...だからwindow.location.indexOf()うまくいきません。

ただし、同じ回答に導かれるように、URL を文字列に変換してwindow.location.hrefから検索を実行できます。または、次のように URL の一部にアクセスすることもできます。

if (window.location.pathname === '/about/faculty/'){...} 完全一致の場合

また

window.location.pathname.split( '/' )この回答に記載されているように、URL の一部を取得します。

于 2017-10-23T19:58:03.110 に答える