2014-01-30 81 views
1

我正在从颜色选择器中检测一个类,并且想要更改标题标记的类。添加css类在jQuery中不工作

// to find specific header id which having bgt css class . Detecting id from a div which have css class .ss 

$(document.body).on('click', '.bgt', function(e) { 
    e.preventDefault(); 
    id = $(this).closest('div').find('.ss').attr('id'); 
    var $this = $('#h'+id); 
    var $dv = $this.closest('div'); 
    var nstr= $dv.attr('class'); 
    var newstrt = nstr; 
    //heder tag where I am to add class 
    $("#h"+id).addClass(newstrt); 

这一段时间工作一段时间无法工作 请帮助

+2

您应该打开您的js控制台,并在每次不工作时查看任何错误消息。 – fcalderan

+0

对我来说看起来很混乱。你想实现什么?首先你要找到一个div的ID,然后你在做'$(“#”+ id)'。然后再次那些凌乱的东西... –

+2

您需要共享一个html示例...还请检查您的浏览器控制台,看看是否有任何错误 –

回答

2

你应该引用的类要添加:

$("#h"+id).addClass("newstrt"); 
+1

假设'newstart'是所需的类名,而不是在别处声明的变量,这是正确的。 –

+0

newstrt是一个变量,它有一个类名,所以在qoute中写同样的名字newsrtr。 其实newstrt的班级名称为bg-color-green。 而且这些都在不断变化 – Attarisoft

+0

你在哪里看到bg-color-green? –

1

请更改e.preeventDefault();

e.preventDefault(); 
+0

已经发布但是发布错误。 – Attarisoft

+0

@Attarisoft你在哪里宣布newstrt – Prashobh

+0

var newstrt = nstr; – Attarisoft

0

我认为你可以使用var id而不只是id

$(document.body).on('click', '.bgt', function(e) { 
e.preventDefault(); 
var id = $(this).closest('div').find('.ss').attr('id'); 

//var $this = $('#h'+id); 
//var $dv = $this.closest('div'); 
//var nstr= $dv.attr('class'); 
//var nstrr = nstr; 

//heder tag where I am to add class 
$("#h"+id).addClass(newstrt); 

如果看@你的代码。我不认为需要四条评论。

+0

这四行代码正在检测我想要应用的类名。 – Attarisoft

+0

@Pramod什么是newstrt这里 – Prashobh

+0

@Attarisoft你没有在这四行中声明newstrt。所以我评论说,四条线 – Pramod