2014-12-03 2 views
0

У меня есть 3 столбца, которые содержат динамически сгенерированные элементы списка (теги li) У них есть атрибут, который я пытаюсь использовать, чтобы скрыть строку/li, когда количество символов (с использованием свойства непрозрачности)JavaScript Скрытие тега li путем выбора атрибута html не работает

У меня есть работа ... иногда и иногда это работает только для одного столбца из 3 ... Так что я был бы признателен за то, что не так Вот.

(function() { 

    // selecting all elements with class 
    // class="checkout-tariff-meta-maybe-hidden" 
    var elems = $(".checkout-tariff-meta-maybe-hidden"); 

    // interact between founded elements 
    for (var k = 0; k < elems.length; k++) { 
     // getting text content size 
     var textSize = elems[k].textContent.length; 
     // if text size is one we will hide element 
     if (textSize <= 1) { 
     // hiding 
     elems[k].style.opacity = "0"; 

     } 
    } 

}()); 
+0

Это не рекомендуется исчезать тексты на одной странице. Если вы не хотите, чтобы их видели, полностью удалите их. –

+1

Да, но если я удалю их, высота столбца изменится и больше не будет совмещена с двумя другими. поэтому я нашел это. – scaap

+0

Двойной содержащий элемент, придаем внешнему минимальную высоту, затем спрячем только внутреннюю. Этими путями, высота остается. –

ответ

1

Вы можете просто пойти прямо в точку, и сделать что-то вроде:

// Adjust as needed 
    $(document).ready(function() { 
    $('.checkout-tariff-meta-maybe-hidden').filter(function() { 
    return $(this).text().length<3; }).hide(); 
}); 
+1

выглядит действительно изящно, спасибо. но почему-то еще не распознается. В противном случае я бы использовал это, и метод fadeTo показал ниже ... – scaap

1

Поскольку вы используете JQuery, чтобы скрыть элемент, который вы можете просто сделать:

$(elems[k]).hide(); 

В качестве альтернативы, если вы хотите, чтобы скрыть это, не оседая (так как вы изменили прозрачность, Я предполагаю, что это так), смотреть в .fadeTo():

$(elems[k]).fadeTo(1, 0); 
+0

Я буду использовать fadeTo, но я не могу понять, почему он не выбирает этот класс. – scaap

0

Вы можете посмотреть на ...

if (textSize <= 1) { 
    elems[k].style.opacity = "0"; 
    } else { 
    elems[k].style.opacity = "1"; 
    } 

... чтобы они снова включались, когда они были дольше.

Смежные вопросы