2011-04-06 71 views
0

我正在为项目创建关键字搜索。所以为了确保它不区分大小写,我将比较前的搜索值和内容设置为小写。这是我在哪里: self.contentSelected = jQuery('.policies_container .lof-element .lof-inner a').html();将div的内容设置为小写

jQuery('.policies_container .lof-element .lof-inner a :contains("' + self.term + '")').each(function() { 
        jQuery(this).html(jQuery(this).html().replace(new RegExp(self.term, 'g'), '<span class="highlight">' + self.term + '</span>')); 
        jQuery(this) 
         .find('.highlight') 
         .fadeIn(self.fadeSpeed); 

        jQuery(".highlight").each(function() { 
         if(jQuery(this).parent().is(":hidden")) { 
          jQuery(this).closest(".lof-element").slideDown(); 
          jQuery(this).closest(".lof-toggler").addClass("active_acc"); 

          self.targetOffset = jQuery(".highlight:first-child").offset().top; 
          jQuery('html, body').animate({scrollTop: self.targetOffset}, self.scrollSpeed); 
         } 
        }); 
       }); 

所以这里这个二线

jQuery('.policies_container .lof-element .lof-inner a :contains("' + self.term + '")').each(function() { 我在寻找需要SE是.lof-内部内容的语法为小写,同时还应用:包含选择器。

任何帮助,谢谢!

回答

6

使用CSS属性:

text-transform:lowercase; 

或使用JavaScript功能:

variable.toLowerCase(); 

在第二方法(JavaScript的),则需要两个源转换并将它传递给之前搜索表达为小写方法。

+0

'文本transform'不会影响JavaScript的访问文本节点。 – alex 2011-04-07 00:01:52

1

:contains()区分大小写。

你可以使用正则表达式和filter()协助......

elements.filter(function() { 
    return $(this).text().match(/\bword\b/i); 
}); 
+0

嘿谢谢亚历克斯,经过一番搜索之后,我发现了这可能是一条路。虽然在我的例子中,我仍然对这个实现还是有点不确定:S – 2011-04-06 23:49:18

+0

@Shane如果你将一组元素传递给它,它将返回那些文本节点包含“word”的元素(由任何一个字边界)。 – alex 2011-04-07 00:02:36