2015-05-06 9 views
-1

Я делаю оценку цены.Скрытие содержимого в зависимости от значения переменной

Как правильно написать функцию jQuery, которая проверяет переменную и в зависимости от этой суммы скрывает/показывает определенный элемент div соответственно.

Так что, если у меня было:

HTML DIV с идентификатором 'Ответ'

<div id="answer">Hide Me</div> 

$("#answer")... 

переменная (переменная изменится)

var x = 30 

Теперь я знаю CSS для скрыть div будет:

#answer{ 
visibilty:hidden; 
} 

Что было бы правильным способом скрыть функцию, проверяющую эти определенные параметры? например, если x> 20, тогда скройте и т. д.

Теперь я знаю, что будет много способов сделать это, и им может не потребоваться jQuery, пожалуйста, сообщите мне, если это так. Возможно, это просто нуждается в JS. Я знаю, что будет много способов сделать это не один, поэтому, если у вас есть другой способ, прокомментируйте, поскольку я очень хочу учиться.

Любая помощь была бы принята с благодарностью.

Приветствия

F

+0

Добро пожаловать на SO. Вы должны показать нам какой-то код, чтобы доказать свои усилия. Это простой сценарий, даже для новичков (мы говорим о нескольких строках кода max ...) –

+0

Спасибо за теплый прием, я помню об этом. – FHair

+0

Если это может улучшить ваши дальнейшие вклады, да, пожалуйста, помните об этом. Я приглашаю вас прочитать страницу [Как спросить] (http://stackoverflow.com/help/how-to-ask), чтобы вы могли видеть, что это ничего личного. Множество подобных ответов от людей, отчаянно ищущих репутацию, не должны поощрять вас, хотя я уверен, что это поможет в конкретном случае. –

ответ

0

Выполнить эту функцию, обеспечивающую переменную v:

var checkVar = function(v) { 
    var target = $('#answer'); 
    if (parseInt(v) > 20) { 
     target.hide(); 
    } else { 
     target.show(); 
    } 
} 

Например, если переменная приходит образуют выбор:

$('#selectId').on('change', function() { 
    checkVar($(this).val()); 
}); 
0

Удалите CSS , Вы можете сделать это в JQuery

if(x>20){ 
$('#answer').hide(); 
} 
0

Вы можете использовать этот один

$("#answer").hide(); 
+0

или использовать $ ("# answer"). Css («видимость», «скрытая»); –

+0

можно также использовать, создав класс: .hideDiv {visibilty: hidden;} и добавить этот класс, чтобы ответить div следующим образом: $ ("# answer"). AddClass ("hideDiv"); –

1

Обратите внимание, что вы также можете удалить или добавить класс:

$('#answer').removeClass('hide'); 
$('#answer').addClass('hide'); 

Но то, что вы хотите сделать, это $('#answer').hide(); или $('#answer').show();

+0

Я лично предпочитаю вариант класса, поскольку он не подразумевает встроенные стили (даже сгенерированные JS) и гораздо более универсален, если когда-либо нужно изменить желаемый эффект. –

0

Ответы kapantzak хорошо смотрятся. Но держите свою логику и стиль разделенными, и если вы не собираетесь использовать переменную для фактического элемента дважды, я бы этого не сделал. Так что:

var checkVar = function(var) { 
    var element = $('#answer'); 
    if (parseInt(var) > 20) { 
     element.addClass('hidden'); 
    }else{ 
     element.removeClass('hidden'); 
    } 
} 

И в вашем CSS ходу:

#answer.hidden{ 
display: none; 
} 

Кроме того, в зависимости от ваших предпочтений, display: none; ничего не объекта отображения, тогда как visibility: hidden скрывает объект, но пространство объект был оккупация останется оккупированной.

0

HTML

<input id="changingValue"> 
... 
<div id="answer">Hide Me</div> 

CSS (не обязательно, если вы проверить значения при загрузке)

#answer{ display:none;} 

JS

var limit = 20; 
$(function(){ 
    $("#changingValue").change(function(){ 
     if(parseInt($("#changingValue").val())<limit) { $("#answer").show(); } 
     else { $("#answer").hide(); } 
    }); 
}); 
Смежные вопросы