私が2つのdivを持っているとしましょう:
<div>£ 21.99</div>
<div>£</div>
£記号のみを含むdivのみを選択したい場合、これについてはどうすればよいですか?
私が試してみました:
if ($('div:contains("£")').length > 0)
{
$(this).addClass("pound");
}
私が2つのdivを持っているとしましょう:
<div>£ 21.99</div>
<div>£</div>
£記号のみを含むdivのみを選択したい場合、これについてはどうすればよいですか?
私が試してみました:
if ($('div:contains("£")').length > 0)
{
$(this).addClass("pound");
}
問題は、ブラウザがHTMLエスケープ文字を変換していることだと思います。そのため、実際の文字を探す必要があります...これをテストしたところ、機能しました
$(document).ready(function(){
$('div').each(function(){
if ($(this).html() == "£"){
$(this).addClass("pound");
}
})
})
$('div:contains("£")').each( function() {
var text = $(this).html();
if (text && text.match(/\s*£\s*/)) {
$(this).addClass('pound');
}
});
tvanfossonのコードでは、£記号の両側に空白を使用できますが、正規表現では少し変更を加えることで実行できます。
$('div:contains("£")').each( function() {
var text = $(this).html();
if (text && text.match(/^\s*£\s*$/)) {
$(this).addClass('pound');
}
});
文字列の開始と終了を示す「^」と「$」に注意してください。