Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как правильно привязать условие к классу html? (https://javascript.ru/forum/misc/73176-kak-pravilno-privyazat-uslovie-k-klassu-html.html)

Artur_Hopf 27.03.2018 10:14

Как правильно привязать условие к классу html?
 
Добрый день. У меня есть кнопки button:
<button class="button_block_table" id="button_1"></button>
<button class="button_block_table" id="button_2"></button>
<button class="button_block_table" id="button_3"></button>

И кнопка для функции привязки:
<button id="button"></button>

Допустим я беру название кнопок с массива:
var arr =['Кнопка1','Кнопка2','Кнопка3'];

И привязываю их к кнопкам:
$('#button').click(function(){
   $("#button_1").html(arr[0]);
   $("#button_2").html(arr[1]);
   $("#button_3").html(arr[2]);
});

А теперь суть вопроса, у меня в css изначально эти кнопки не видны:
.button_block_table{display:none}

Как привязать условие if к классу кнопки, чтобы если название кнопки было не пустое, блок отображался?
К id кнопки условие я делал так:
if (arr[0]){
      button_1.style.display = 'inline';
}

но кнопок на самом деле больше трех, и на каждую такое условие писать не хочется.Можно ли написать:
if(название кнопки class="button_block_table" не пусто){
    class="button_block_table" display = 'inline';
};

То есть отображались только кнопки с названием.

j0hnik 27.03.2018 10:22

$('.button_block_table:not(:empty)').show();

Artur_Hopf 27.03.2018 10:27

j0hnik,
Спасибо большое, почитать надо про такое:thanks:

Artur_Hopf 27.03.2018 10:48

j0hnik,
Подскажи еще пожалуйста, я же привязываю названия к id кнопок:
$('#button').click(function(){
   $("#button_1").html(arr[0]);
   $("#button_2").html(arr[1]);
   $("#button_3").html(arr[2]);
});


а можно сделать что то вроде:
for (var i = 0; i < arr.length; i++) {
    var html += arr[i];
    $(".button_block_table").html(html);
};

То есть 1 строкой кода заполнить все кнопки названиями, или к каждой кнопке конкретно только можно привязать?

Artur_Hopf 27.03.2018 11:01

Разобрался, пропала нужда скрывать кнопки, и вообще добавлять их в html :dance: :
<div id="container"></div>

for (var i = 0; i < arr.length; i++) {
    var html += '<button>' + arr[i] + '</button>';
    $("#container").html(html);
};

j0hnik 27.03.2018 11:03

$(".button_block_table").each(function(i){
	$(this).text(arr[i]);
});

Nexus 27.03.2018 11:22

j0hnik,
$(".button_block_table").text(function(i){
    return arr[i];
});

j0hnik 27.03.2018 11:35

Nexus,
можно и так но, но each по шустрей.


Часовой пояс GMT +3, время: 18:07.