大家好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
我该如何解决?
答案 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");