$('h1').hover(function(){
if ($('h1:contains("three")')) {
$(this).css({'color':'#09f'})
}
//$('h1').text().filter('three').css( 'color', '#09f' );
})
我很难弄清楚如何只选择包含文字的元素。现在,上面的代码将h1的颜色变为#09f
当该元素悬停时,它应该只将匹配的h1的颜色变为#09f
。 / p>
我试图通过不同的用例来解决这个问题。 有没有人知道只对匹配元素做某事的最佳方法? 它会是.filter()吗? :包括()? 。载有()? 。是()?
答案 0 :(得分:2)
您可以在:contains
选择器上使用h1
:
$('h1:contains("three")').hover(function() {
$(this).css('color', '#09f');
});
工作jsfiddle。
注意:由于没有向hover()
提供css颜色的输出处理程序,但您可以使用second argument to hover()
进行修复。这是一个fiddle。
答案 1 :(得分:1)
我认为你想要这样的东西,只会在h1中找到正在盘旋的文本“three”并仅改变h1的颜色:
$('h1').hover(function(){
if ($(':contains("three")', this).length) {
$(this).css({'color':'#09f'})
}
})
答案 2 :(得分:1)
直接使用.is()
:
$('h1').hover(function() {
if($(this).is(':contains("three")')) {
$(this).css('color', '#09f')
}
// $('h1').text().filter('three').css( 'color', '#09f' );
})