说我有2个div:
<div>£ 21.99</div>
<div>£</div>
如果我只想选择仅包含£符号的div,我该怎么做呢?
我试过了:
if ($('div:contains("£")').length > 0)
{
$(this).addClass("pound");
}
答案 0 :(得分:4)
我认为问题在于浏览器正在转换HTML转义字符,因此您需要查找实际字符...我测试了它并且它可以正常工作
$(document).ready(function(){
$('div').each(function(){
if ($(this).html() == "£"){
$(this).addClass("pound");
}
})
})
答案 1 :(得分:1)
$('div:contains("£")').each( function() {
var text = $(this).html();
if (text && text.match(/\s*£\s*/)) {
$(this).addClass('pound');
}
});
答案 2 :(得分:0)
答案 3 :(得分:0)
tvanfosson的代码允许在£符号的任一侧使用空格,但正则表达式可以进行一些修改:
$('div:contains("£")').each( function() {
var text = $(this).html();
if (text && text.match(/^\s*£\s*$/)) {
$(this).addClass('pound');
}
});
注意'^'和'$'表示字符串的开头和结尾。