简体   繁体   English

onClick事件+ jQuery在不同的div中修改类CSS样式

[英]onClick event + jquery to modify a class css style in a different div

I have been looking around for a while, but i couldn't find a proper solution, so I registered and this is the first question i'm posting. 我已经寻找了一段时间,但是我找不到合适的解决方案,所以我注册了,这是我发布的第一个问题。 I hope you can help me: 我希望你能帮帮我:

I'm trying to create a set of five buttons (divs) with onClick event that show five diferent divs. 我正在尝试使用onClick事件创建一组五个按钮(div),以显示五个不同的div。 I have created an inline code for each button and it works, but im trying to create an external function to perform the task just setting the div clicked (that will display a yellow border) and the div that should be displayed. 我已经为每个按钮创建了一个内联代码,并且可以使用,但是我试图创建一个外部函数来执行任务,只需将div单击设置(它将显示黄色边框)和应该显示的div。

A scheme of the code im trying to write is: 我试图编写的代码方案是:

HTML: HTML:

<div id="button1" class="button" onClick="choose(this,'c1')"></div>
<div id="button2" class="button" onClick="choose(this,'c2')"></div>
<div id="button3" class="button" onClick="choose(this,'c3')"></div>
<div id="button4" class="button" onClick="choose(this,'c4')"></div>
<div id="button5" class="button" onClick="choose(this,'c5')"></div>
<div class="c1"></div>
<div class="c2"></div>
<div class="c3"></div>
<div class="c4"></div>
<div class="c5"></div>

JAVASCRIPT-JQUERY: JAVASCRIPT-JQUERY:

function choose(button,card) {
$( "#button1" ).css("border-color", "#F1F1F1");
$( "#button2" ).css("border-color", "#F1F1F1");
$( "#button3" ).css("border-color", "#F1F1F1");
$( "#button4" ).css("border-color", "#F1F1F1");
$( "#button5" ).css("border-color", "#F1F1F1");
$( "div.c1" ).hide();
$( "div.c2" ).hide();
$( "div.c3" ).hide();
$( "div.c4" ).hide();
$( "div.c5" ).hide();
$( button ).css("border-color", "#FFCC00");
$( div.card ).show();
}

The border (selector) task works fine and changes the border color of the div clicked, but I cant find a way to take the class name that should be shown into the jquery function, it should be one of the c1, c2, c3, c4 or c5. border(选择器)任务可以正常工作,并且可以更改单击的div的边框颜色,但是我找不到一种方法来获取应该显示在jquery函数中的类名,它应该是c1,c2,c3, c4或c5。 Can someone help me with this? 有人可以帮我弄这个吗?

Best overall solution http://jsbin.com/UXElode/4/edit thanks to @Roko C. Buljan 最好的整体解决方案http://jsbin.com/UXElode/4/edit @@ Roko C.Buljan

您可以尝试类似:

$("." + card).show();

How about having only this: 只拥有这个怎么办:

<div id="button1" class="button"></div>
<div id="button2" class="button"></div>
<div id="button3" class="button"></div>
<div id="button4" class="button"></div>
<div id="button5" class="button"></div>
<div class="c1"></div>
<div class="c2"></div>
<div class="c3"></div>
<div class="c4"></div>
<div class="c5"></div>

and this: 和这个:

$('.button').click(function(){
     $('.button').css("border-color", "#F1F1F1");
     $( this ).css("border-color", "#FFCC00");
     var n = this.id.split('n')[1];
     $('.c'+ n).show();
});

To extract the number out of the clicked ID element you can also do: 要从点击的ID元素中提取数字,您还可以执行以下操作:

     var n = this.id.match(/\d+/g);

and a live demo 和现场演示

Try to do something like this: 尝试做这样的事情:

<div id="button1" class="button"></div>
<div id="button2" class="button"></div>
<div id="button3" class="button"></div>
<div id="button4" class="button"></div>
<div id="button5" class="button"></div>
<div class="c button1"></div>
<div class="c button2"></div>
<div class="c button3"></div>
<div class="c button4"></div>
<div class="c button5"></div>

With this Javascript: 使用此Javascript:

$(".button").click(function(){
  $(".button").css("border-color", "#F1F1F1");
  $(".c").hide();
  $( this ).css("border-color", "#FFCC00");
  $( "."+this.id ).show();
});

How About coding it like this? 如何编码这样?

HTML 的HTML

<form id="btun">
    <div id="c1" style="background-color:#F1F1F1">btn 1</div>
    <div id="c2" style="background-color:#F1F1F1">btn 2</div>
    <div id="c3" style="background-color:#F1F1F1">btn 3</div>
     <div id="c4" style="background-color:#F1F1F1">btn 4</div>
    <div id="c5" style="background-color:#F1F1F1">btn 5</div>
</form>
<form id="array">
    <div class="c1">c1</div>
    <div class="c2">c2</div>
    <div class="c3">c3</div>
    <div class="c4">c4</div>
    <div class="c5">c5</div>
</form>

JavaScript (w/JQuery) JavaScript(带jQuery)

$('#btun div').click(function () {
    var a = $(this).attr('id');
    $('.' + a).hide();
});

Jsfiddle 杰斯菲德尔

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM