2017-02-22 5 views
0

Я пытаюсь сделать это на сайте Wordpress. Я искал и пробовал несколько уже опубликованных предложений, но никто не работал.Wordpress & jQuery: скрыть родительский div, если диапазон равен нулю

Я хочу скрыть диапазон, если он содержит ноль, когда страница загружается.

Я использовал следующий код (помещенный в голову), но он не скроет пролет.

<script type="text/javascript"> 
(function ($) { 
var propertydata = $('span.property-data'); 
if (propertydata.text().trim() === '0') { 
    propertydata.closest('span.propertydata').hide(); 
} 
}); 
</script> 

Вот HTML Я пытаюсь скрыть:

<div id="dbst-show12" class="column rows other"> 
    Year Built : 
    <span class="property-data">0</span> 
</div> 

В конце концов, я хотел бы, чтобы скрыть «столбец» родительский, если это возможно, но будет оседать, если я мог бы просто получить нули исчезнуть.

+0

Вам нужно передать объект jQuery: '(function ($) {...}) (jQuery);' Таким образом, '' 'внутри функции относится к переданному jQuery'. И вам не хватает черты в 'span.property-data', когда вы ее скрываете. –

ответ

0

Вы можете использовать селектор JQuery, чтобы выбрать все 0 в пролете, как это:

var selecton = $("span:contains(0)"); 

Тогда вы можете скрыть все элементы с .hide JQuery() метод:

selection.hide(); 

Вы также должны убедиться, что функция включена внутри $ (документа). Уже поэтому браузер знает, как только страница загружена, она может запускать вашу функцию.

Это будет весь фрагмент кода:

$(document).ready(function(){ 
var selection = $("span:contains(0)"); 
selection.hide(); 
}); 

Вот ссылка на JSFiddle с данным кодом: https://jsfiddle.net/kgill/uzpqdsoj/1/

Вы можете так же скрыть весь столбец, выбрав DIV с селектором JQuery и спрятав его таким же образом.

0

Проблема заключается в том, что делать:

var propertydata = $('span.property-data'); 

proertydata получает все значения из всех текстов пролетов, так что никогда не будет равна 0.

Вы можете сделать это следующим образом:

<script type="text/javascript"> 
(function ($) { 
    jQuery.each($('span.property-data'), function(i, val) { 
     if ($(val).text().trim() === '0') { 
      $(val).hide(); //hides only the span 
      $(val).parent().hide(); //if you want to hide parent div also 
     } 
    }); 
})(jQuery); 
</script> 

Вот JSFiddle: https://jsfiddle.net/bv7u4hxb/1/

+0

Спасибо за ответ. –

+0

Я думаю, что это сработает, но я продолжаю получать ошибку: ReferenceError: jQuery не определен –

+0

Извините, если предыдущий был глупым вопросом, я не очень разбираюсь в javascript. –