-1

Hello guys I have some code:

<div class="a">
    <div class="btn-group">
        <button class="btn make-editable" data-name="GlobalCorrelationMatrix" data-action="edit-row">Edit</button>
        <button class="btn make-approve" data-name="GlobalCorrelationMatrix" data-action="approve-row">Save</button>
        <button class="btn make-close" data-name="GlobalCorrelationMatrix" data-action="discard-row">Close</button>

    </div>
</div>
<div class="b">
    <div class="btn-group">
        <button class="btn make-editable" data-name="GlobalCorrelationMatrix" data-action="edit-row">Edit</button>
        <button class="btn make-approve" data-name="GlobalCorrelationMatrix" data-action="approve-row">Save</button>
        <button class="btn make-close" data-name="GlobalCorrelationMatrix" data-action="discard-row">Close</button>

    </div>
</div>

When i use $("button.btn.approve").addClass("disabled"); the buttons from div a and div b are disabled. How to disabled button-approve only from div a?

andreas
  • 15,414
  • 12
  • 68
  • 68
  • Possible duplicate of [jQuery disable/enable submit button](http://stackoverflow.com/questions/1594952/jquery-disable-enable-submit-button) – Smit Mar 09 '17 at 07:43

5 Answers5

3

If you click the button, you only want to add class to the buttons in the same group?

If so do this:

$('.btn-group .btn').click(function(){
    $(this).parent().children('.btn').addClass('disabled');
});
.disabled {
  color: #bbb;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="a">
    <div class="btn-group">
        <button class="btn make-editable" data-name="GlobalCorrelationMatrix" data-action="edit-row">Edit</button>
        <button class="btn make-approve" data-name="GlobalCorrelationMatrix" data-action="approve-row">Save</button>
        <button class="btn make-close" data-name="GlobalCorrelationMatrix" data-action="discard-row">Close</button>

    </div>
</div>
<div class="b">
    <div class="btn-group">
        <button class="btn make-editable" data-name="GlobalCorrelationMatrix" data-action="edit-row">Edit</button>
        <button class="btn make-approve" data-name="GlobalCorrelationMatrix" data-action="approve-row">Save</button>
        <button class="btn make-close" data-name="GlobalCorrelationMatrix" data-action="discard-row">Close</button>

    </div>
</div>
Brad
  • 6,899
  • 8
  • 35
  • 47
2

Select buttons only within the div has class a by updating the selector.

$("div.a button.btn.approve").addClass("disabled");
Pranav C Balan
  • 110,383
  • 23
  • 155
  • 178
2

You just have to change your selector and make it more general to include your .a class:

$(".a > .btn-group > button.btn.approve").addClass("disabled");`
andreas
  • 15,414
  • 12
  • 68
  • 68
  • But, how i Can change visible when i click button? Some like this? $( ".a > .btn-group > button.btn.approve" ).click(function() { $(" .b > .btn-group > button.btn.approve").addClass("disabled"); }); – Mateusz Sorys Mar 09 '17 at 08:12
1

Try something like this :

 $(".a button.btn.approve").addClass("disabled");
Quentin Roger
  • 6,205
  • 2
  • 23
  • 35
-1
.b>.button.btn.approve

You need to define exact element because

button.btn.approve

Matches all buttons, you can add additional class or ID too

cymruu
  • 2,568
  • 2
  • 10
  • 21