如何确定一个元素是否只包含带有JQuery的£符号?

时间:2009-10-08 00:15:30

标签: javascript jquery contains

说我有2个div:

<div>&pound; 21.99</div>
<div>&pound;</div>

如果我只想选择仅包含£符号的div,我该怎么做呢?

我试过了:

if ($('div:contains("&pound;")').length > 0) 
{
   $(this).addClass("pound");
}

4 个答案:

答案 0 :(得分:4)

我认为问题在于浏览器正在转换HTML转义字符,因此您需要查找实际字符...我测试了它并且它可以正常工作

$(document).ready(function(){
 $('div').each(function(){
  if ($(this).html() == "£"){
   $(this).addClass("pound");
  }
 })
})

答案 1 :(得分:1)

$('div:contains("&pound;")').each( function() {
     var text = $(this).html();
     if (text && text.match(/\s*&pound;\s*/)) {
        $(this).addClass('pound');
     }
});

答案 2 :(得分:0)

尝试.filter。

我在SO上发现了另一个有相关信息的问题:

Regular expression field validation in jQuery

答案 3 :(得分:0)

tvanfosson的代码允许在£符号的任一侧使用空格,但正则表达式可以进行一些修改:

$('div:contains("&pound;")').each( function() {
    var text = $(this).html();
    if (text && text.match(/^\s*&pound;\s*$/)) {
        $(this).addClass('pound');
        }
    });

注意'^'和'$'表示字符串的开头和结尾。