Как добавить

#javascript #if-statement #onclick

#javascript #if-statement #onclick

Вопрос:

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

 <button id="p1" onclick="p();" >p1</button>
<button id="p2" onclick="p();" >p2</button>
<p id="p3">2</p>
  

И затем я хотел бы создать функцию, которая

 function p(e){

    var p= document.getElementById("p3").innerHTML;

    if('p1'==e amp;amp; p!=2){alert('yes');}

    if('p2'==e amp;amp; p==2){alert('no');}

}
  

Я не знаю, почему это просто не работает.

Как использовать if и amp;amp; and onclick вместе в этом случае?

Пожалуйста, направляйте меня дальше и только на javascript.

Ответ №1:

Вы определяете функцию p() , которая принимает параметр e , но когда вы вызываете эту функцию в своем onClick , вы не передаете для этого никаких параметров e . вы можете изменить свой html-код как таковой

 <button id="p1" onclick="p('p1');" >p1</button>
<button id="p2" onclick="p('p2');" >p2</button>
<p id="p3">1</p>
  

Ответ №2:

Здесь нет проблем с if and amp;amp; . вы не передаете какие-либо данные в функцию в качестве атрибутов.

 function p(e){ //your function} in this case you have a argument passed.
  

вы должны передавать значения через

 <button id="p1" onclick="p(p1);" >p1</button>
<button id="p2" onclick="p(p2);" >p2</button>
  

If и amp;amp;
, как вы знаете, if будут запускать его тело, когда аргумент имеет значение true, а в случае amp;amp; обе стороны значения должны быть такими, чтобы возвращаемое логическое выражение стало истинным

 true amp;amp; true ==> true
true amp;amp; fale ==> false 
  

Ответ №3:

Попробуйте использовать более описательные имена, поскольку у вас есть функция и вызываемая переменная p , которые немного сбивают с толку.

Итак, я немного изменяю код, вам нужно передать аргумент функции, которая запускается кнопкой, чтобы вы могли определить, какая кнопка вызвала вызов, обычно это «событие», но вы также можете использовать другие имена, такие как «this» или «e»

 <button id="p1" onclick="handleOnClick(event)" >p1</button>
<button id="p2" onclick="handleOnClick(event)" >p2</button>
<p id="p3">2</p>
  

Затем вы сравниваете, получая идентификатор элемента event.target.id примерно так:

 function handleOnClick(e) {
    console.log(e.target.id);
    
    var p = document.getElementById("p3").innerHTML;
    if('p1'==e.target.id amp;amp; p==2){alert('yes');}
    if('p2'==e.target.id amp;amp; p==2){alert('no');}
}
  

Обратите внимание, что я меняю оценку вашего первого if с != на == другое, так как это условие никогда не будет истинным, но вы можете изменить это на то, что соответствует вашим потребностям.