2013-03-14 32 views
0

http://jsfiddle.net/hdn6e/10/addClass在试图动态更改div的类时不工作

这里有什么问题?已尝试过我的一切,但似乎没有任何工作

<div class="main"> 
    <div class="qty" style="float:left">1</div> 
    <div class="name" >A</div>  
</div> 
<div id="main"> 
    <div class="qty" style="float:left">2</div> 
    <div class="name">B</div>  
</div> 
<input type="button" id="ADD"> 


$('#main').on('click', function(){ 
     $(this).addClass('selected'); 
    }); 
$('.name').on('click', function(){ 
     $(this).addClass('selected'); 
    }); 
$('.qty').on('click', function(){ 
     $(this).addClass('selected'); 
    }); 

$('#ADD').click(function(){ 
     $(".selected").nearest(".qty").text($(".selected").nearest(".qty").text() +1); 
    }); 
+1

你可能想看看你的网页浏览器的控制台。 – 2013-03-14 19:01:57

+0

'最近'的方法是一个问题。 – dfsq 2013-03-14 19:03:01

+0

马比放在一个$(document).ready({...}} – user666 2013-03-14 19:03:08

回答

0

您的代码试图为每个单击的元素添加一个CSS类。如果你想添加一个类的属性,请执行下列操作:

$('#main').on('click', function(){ 
    $(this).attr('class', 'selected'); 
}); 

如果你想申请一个CSS类,在样式标签

<style> 
    .selected { 
     color: blue; 
    } 
</style> 

创建所选类然后将其添加到被点击与

.addClass("selected"); 
2

元素如果问题是你的第二个<div id="main">没有得到selected类,那是因为你不能有与日DOM的多个项目与您在your jsfiddle example中做的相同的ID。

main更改为类,它将按预期工作。

HTML

<div class="main"> 
    <div class="qty" style="float:left">1</div> 
    <div class="name" >A</div>  
</div> 
<div class="main"> 
    <div class="qty" style="float:left">2</div> 
    <div class="name">B</div>  
</div> 
<input type="button" id="ADD"> 

JS

$('.main').on('click', function(){ 
    $(this).addClass('selected'); 
}); 

DEMO