3

我有这样的<span style="font-weight: bold;">Text goes her</span>跨度

$('#contentarea').bind('click',function(e){
                e.preventDefault();
                if($(e.target).is('span')){
                    if($(e.target).find(":contains(font-weight: bold;)")){{
                         alert('bold');
                    }
                }
            });

我没有得到实际结果,如果我单击任何跨度文本它会提醒,请帮助我,我需要找出跨度包含字体粗细:粗体;

4

4 回答 4

0
$(e.target).find(":contains(font-weight: bold;)")

它总是返回一个 jQuery 对象集合——包括长度为 0 的集合。这不是一个 javascript 列表,你总是得到true布尔值。

var target = $(e.target);
if(target.is('span')){
     if(target.css('font-weight') == 'bold'){
         alert('bold');
     }
}
于 2013-07-08T10:45:08.683 回答
0

尝试:

var isBold =$(e.target).css('font-weight');
if($(isBold === ("bold")|| isBold === 700){
                         alert('bold');
                    }

这样您就可以检查是否存在 CSS 属性。

于 2013-07-08T10:46:58.820 回答
0

您可以使用属性选择器...(如果您只需要选择包含样式属性的跨度作为字体...)

试试这个

$('span[style^="font-"]')

这应该选择以样式开头的跨度font-

或者

$('span[style="font-weight: bold;"]')

小提琴

于 2013-07-08T10:51:39.757 回答
0

首先提醒一下,:contains()选择器用于DOM 节点的内容,因此您可以将其与以下 HTML 一起使用:

<div id="contentarea">
    <span>Hello World</span>    // will alert when clicked
    <span>Goodbye World</span>  // will not alert when clicked
</div>

以及以下 jQuery:

$('#contentarea').bind('click',function(e){
    e.preventDefault();
    if($(e.target).is('span')){
        if($(e.target).is(':contains(Hello)')){
            alert($(e.target).text());
        }
    }
});

您要做的是查看应用的 CSS 样式属性,因此您可能想做更多这样的事情:

HTML:

<div id="contentarea">
    <span style="font-weight: bold;">Hello World</span>
    <span style="font-weight: 700;">Hello World</span>
    <span>Hello World</span>
</div>

jQuery:

$('#contentarea').bind('click',function(e){
    e.preventDefault();
    if($(e.target).is('span')){
        if($(e.target).css('font-weight')==="bold" || $(e.target).css('font-weight')==="700"){
            alert($(e.target).text());
        }
    }
});
于 2013-07-08T11:04:36.457 回答