Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用此选项可以在具有相同名称的各个类中选择不同的类_Javascript_Jquery - Fatal编程技术网

Javascript 使用此选项可以在具有相同名称的各个类中选择不同的类

Javascript 使用此选项可以在具有相同名称的各个类中选择不同的类,javascript,jquery,Javascript,Jquery,我试图为每个链接使用相同的jQuery脚本创建不同的链接。我不想为每个链接编写jQuery脚本,而是希望只使用一个函数 我的HTML结构是: <a href="#" class="link-chart lx-link-chart"> <div class="link-selector-one"> <div class="link-selector-two red"></div> </div> </a> <

我试图为每个链接使用相同的jQuery脚本创建不同的链接。我不想为每个链接编写jQuery脚本,而是希望只使用一个函数

我的HTML结构是:

<a href="#" class="link-chart lx-link-chart">
  <div class="link-selector-one">
    <div class="link-selector-two red"></div>
  </div>
</a>
<a href="#" class="link-chart lx-link-chart">
  <div class="link-selector-one">
    <div class="link-selector-two red"></div>
  </div>
</a>
我试图使用(这个),但在当前状态下它不起作用。目标是,如果我单击第一个链接,仅更改包装在
链接中的第一个链接div的样式。如果选择第二个,则仅对第二个进行更改。现在,我删除了这个选项,如果我点击其中任何一个,它将对所有链接进行更改,但想法是只对选定的链接进行更改

首先,
$(“.link chart”,这个)
并不像你想象的那样。由于您在全局范围内,而不是在函数中,
只是
窗口
,因此此处不需要

您应该只使用
$(“.link chart”,this)

其次,在此单击处理程序中,
将是您单击的
标记。从那里你可以得到你想要的子元素

$( ".link-chart").click(function($e) {
    if($(this).find(".link-selector-two").hasClass('red')) {              
        $('.link-selector-two', this).addClass('cssclass');           
        $('.link-selector-one', this).addClass('cssclass');  
    } else {
        $('.link-selector-two', this).removeClass('cssclass');
    }   
});

注意:
$('.link selector 2',this)
$(this)的简写。查找('.link selector 2')
$(“.link chart”,this)
中删除
this
,并将
this
添加到选择器
$('.link selector 2')
$('.link selector 1'))
单击功能中的内容将影响每个链接图中的项目

运行下面的代码段以查看它的运行情况

$(“.link chart”)。单击(函数($e){
if($(this).find(“.link selector two”).hasClass('red')){
$('.link选择器2',this.addClass('cssclass');
$('.link selector one',this.addClass('cssclass');
}否则{
$('.link选择器2',this.removeClass('cssclass');
}
});
.red{color:red;}
.cssclass{color:blue!重要;}


您可以使用以下命令对选择器进行分组:
$('.link selector one、.link selector two',this).addClass('cssclass')谢谢!很好的解释和解决问题。
$( ".link-chart").click(function($e) {
    if($(this).find(".link-selector-two").hasClass('red')) {              
        $('.link-selector-two', this).addClass('cssclass');           
        $('.link-selector-one', this).addClass('cssclass');  
    } else {
        $('.link-selector-two', this).removeClass('cssclass');
    }   
});