-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
  • 16,357
  • 12
  • 72
  • 76
  • 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
  • 8,044
  • 10
  • 39
  • 50
2

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

$("div.a button.btn.approve").addClass("disabled");
Pranav C Balan
  • 113,687
  • 23
  • 165
  • 188
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
  • 16,357
  • 12
  • 72
  • 76
  • 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,410
  • 2
  • 23
  • 36
-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,808
  • 2
  • 11
  • 23