Я пытаюсь записать, если оператор, где, если один из элементов имеет, он - набор дисплея ни к "одному", я хочу, чтобы родительский элемент также не отобразил "ни один"...
Это - код, который я пробую, который не работает...
/* tried this first */
if($('#prevx a').attr('display') == 'none') {
$(this).parent().attr('display','none');
}
/* and then this */
if($('#prevxa > a').attr('display') == 'none') {
$('#prevxa').attr('display','none');
}
Разметка похожа на это:
<ul>
<li class="navnext" id="nextxa">
<a id="nextx" href="#"><img src="/images/next.png"/></a>
</li>
<li class="navprev" id="prevxa">
<a id="prevx" href="#" style="display: none;"><img src="/images/previous.png"/></a>
</li>
</ul>
Попробуйте следующее:
if($('#prevx').css('display') == 'none') {
$('#prevx').parent().css('display','none');
}
Еще лучше:
$('#prevx').parent().css('display',$('#prevx').css('display'));
Этот пример мне подходит. Чтобы скрыть / отобразить родительский элемент, переключите отображение дочернего элемента между none и inline:
<ul>
<li class="navnext" id="nextxa">
<a id="nextx" href="#"><img src="/images/next.png"/></a>
</li>
<li class="navprev" id="prevxa">
<a id="prevx" href="#" style="display: inline;"><img src="/images/previous.png"/></a>
</li>
</ul>
<script>
if ($('#prevx').css('display') == 'none')
$('#prevx').parent().css('display', 'none');
else
$('#prevx').parent().css('display', 'list-item');
</script>
.attr используется для таких тегов, как id, title, alt, src и т. д.
.css используется для CSS стили, такие как display, font, text-decoration: blink и т. д.
Решение Pygorex1 должно помочь.
if($('#prevx a').css('display') === 'none') {
$(this).parent().css('display','none');
}
Из примеров кода у вас уже есть идентификатор для родителя, поэтому почему бы не использовать его?
Кроме того, есть много других способов сделать это (оберните строки ниже внутри $ (document) .ready (function () {...})
), чтобы они работают:
Использование селектора : hidden
(это только скроет):
if ($('#prevx').is(':hidden')) $('#prevxa').hide();
Используйте тернарный оператор (это скроет или покажет родителя)
var showOrHide = ($('#prevx').is(':hidden')) ? 'none' : '';
$('#prevxa').css('display', showOrHide);
JQuery использует несколько сокращений:
: hidden
найдет объекты, которые скрыты (или настроены на отображение: нет). Это не обязательно должно быть внутри . равно ()
либо. Вы можете использовать это: $ ('div: hidden'). Show ()
, чтобы показать все скрытые div. : visible
найдет объекты, которые не скрыты (display = '', 'inline', 'block' и т. д.) $ (element) .hide ()
скроет элемент (установит значение none) $ (element) .show ()
покажет элемент (очищает отображаемое значение)