Javascript不会添加课程

时间:2014-10-07 16:49:07

标签: javascript jquery class

大家好javascript不要将类添加到html

$(".ocmessage").each(function(){
    var text = $(this).find('p').html();
    if(strpos(text,"<b>"+name+"</b>")!==false) $(this).addClass("quoteme");
});

此代码应检测<p>...</p>中是否有某个成员的名称,如果有javascript则应添加类quoteme

我该如何解决?

4 个答案:

答案 0 :(得分:2)

我认为你的意思是这个。顺便说一句,name未定义。

var name = '';  // change the value
if(text.indexOf("<b>"+name+"</b>") > -1) {
   $(this).addClass("quoteme");
}

答案 1 :(得分:0)

假设ocmessage是一个div或另一个包含类。

看看:http://jsfiddle.net/40vv7dbk/

 $(".ocmessage").each(function () {
    var $this = $(this);
    var text = $this.find('p').html();

    var name = "Ben"
    // Will be -1 if not found.
    if (text.indexOf(name) > -1) {
        $this.addClass("quoteme");
    }
});

它正在做什么,就是当文档准备就绪时,通过所有带有类ocmessage的Div,查找

标签,然后检查名称是否在那里。如果是,我添加类quoteme。

答案 2 :(得分:0)

ocmessage的元素可能包含多个段落。所以在第一个each - 循环内部,我们必须在所有<p>中进行第二次循环,如下所示:

$(".ocmessage").each(function(){
    var $T = $(this);
    $T.find('p').each(function() {
        var text = $(this).html();
        // find username and prevent multiple class adding
        if(text.indexOf("<b>"+name+"</b>") > -1) {
            $T.addClass("quoteme"); return false; // stop loop when class is added
        }
    });
});

工作FIDDLE here。归功于 Amit Joki

答案 3 :(得分:-1)

这是完成任务的一种非常糟糕的方式。这是更标准的jquery方法。

$(".ocmessage").has('p b:contains('+name+')').addClass("quoteme");