2016-02-08 90 views
0

每次单击“.parent”时,我都试图在一个“li”元素上实现效果。但它会一次处理所有的li元素。 我要的是,当我触发点击.parent第一李应突出,那么我第二次触发click事件,父李二突出等 HTML:如何在JQuery中单击其父元素时定位每个子元素

<div class="parent"> 
    <ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    </ul> 
</div> 

JQuery的:

$('.parent').on('click', function(){ 
    $('li').addclass('true'); 
}); 
+0

每个新增CSS =每一个。想达到什么目的?在不使用单词'each'和'every'的情况下解释它。 – Michael

+0

每次点击'.parent'时,我想在'li'上实现css()更改。 –

+0

哪一个“李”? – Michael

回答

2

编辑完全不同的问题:

$('.parent').on('click', function(evt) { 
 
    $(evt.target).find('li:not(.true)').first().addClass('true'); 
 
});
.true { 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="parent"> 
 
    <ul> 
 
    <li>1</li> 
 
    <li>2</li> 
 
    <li>3</li> 
 
    </ul> 
 
</div>

+0

我希望它每次处理每个“li”元素点击.parent –

+0

因为我使用$(.target)函数停止工作。并且我想要定位所有li元素,但每次在父级触发click事件时只有一个元素。 –

+0

我从来没有写过'$(.target)'。由于我的例子是可执行文件,因此您可以直接验证代码是否完全按照您的说法进行操作。 – Amadan

0

尝试了这一点

样式表

<style> 
    .true{color:red;border:1px solid red;} 
</style> 

jQuery代码

$(document).on('click','.parent',function(){ 
    $(this).find('ul li').addClass('true'); 
}); 

,或者你可以动态使用jQuery的CSS功能类似下面

$(document).on('click','.parent',function(){ 
    $(this).find('ul li').css({'color':'red','border':'1px solid red'}); 
}); 
相关问题