選択時に大文字と小文字を区別しないようにjQueryを使用するにはどうすればよいですか?
-
03-07-2019 - |
質問
現在、次のjQueryセレクターを使用してリンクを無効にしようとしています:
$("a[href$=/sites/abcd/sectors]").removeAttr("href");
問題は、ページ上のhrefが常に小文字であるとは限らない場合があることです。この場合、セレクタは一致しなくなります。
これを回避する方法を知っている人はいますか?大文字と小文字を区別しないように、この動作を一度変更できますか?
解決
私は自分でこれに遭遇しました。大文字と小文字を区別せずに比較できるように、ロジックを少し切り替えました。もう少し作業が必要ですが、少なくとも動作します。
$('a').each(function(i,n) {
var href = $(n).attr("href");
href = href.toLowerCase();
if (href.endsWith('/sites/abcd/sectors'))
$(n).removeAttr('href');
});
独自のendsWith
ロジックを把握する必要があります。
他のヒント
jQueryは、拡張するために構築されました。修正するか、大文字と小文字を区別しない独自のタイプのセレクターを追加できます。
関数<!> quot; is <!> quot;を使用できます。 jQueryで。大文字と小文字は区別されません。
$("a").each(function() {
if ($(this).is("a[href$=/sites/abcd/sectors]")) {
$(this).removeAttr('href');
}
})
まず、これは NOT VALID 式です。これには\
、
メタ文字(!"#$%&'()*+,./:;<=>?@[\]^``{|}~
など)のいずれかを
名前のリテラル部分。2つのバックスラッシュで文字をエスケープする必要があります:\\
。
Src: http://api.jquery.com/category/selectors/
したがって、/
を\\/
したがって、式は$("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");
所属していません StackOverflow