Javascript don't add the class

Javascript don't add the class

本文关键字:add the class don Javascript      更新时间:2023-09-26

大家好,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

我该怎么修?

我想你是认真的。BTW、name未定义。

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

假设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,查找

标记,然后检查其中是否有名称。如果是,我添加类的引号。

类为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。归功于阿米特·佐基

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

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