Получение [object Object] путем передачи php-строки в функцию onclick с помощью jquery

#javascript #php #jquery

#javascript #php #jquery

Вопрос:

Я хочу предупредить hello, вместо этого я получаю [object Object]. Получение [object Object] путем передачи php-строки в функцию onclick с помощью jquery

 <!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<p id="demo"></p>

<a class="readmore" onclick="myFunction('<?php echo "hello";?>')">Readmore....</a>

<?php
call();
function call(){
?>
<script>
$(document).ready(function(){
  $(".readmore").click(function(link){
    alert(link);
  });
}); 
</script>
<?php }
?>
</body>
</html>
  

Комментарии:

1. Использование console.log(link) — alert всегда преобразует в строку, которая всегда будет показывать «object» для объекта

2. Обратите внимание, что обработчик события щелчка jquery не имеет никакого отношения к onclick атрибуту. jquery click всегда будет передавать объект события ( link в вашем коде должно быть eventObject ) — api.jquery.com/click вот почему вы получаете [Object] — потому что это объект события

Ответ №1:

Проблема в вашем коде JavaScript. Вы вызываете функцию, которая не существует. Вот почему это ничего не делает. Если вы хотите сделать это в jQuery, вам нужно будет определить link. В противном случае ссылка равна [object Object], потому что ссылка передается функцией, которая вызывается без атрибута link.

Исправлено:

   <!DOCTYPE html>
    <html>
    <body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <p id="demo"></p>
    
    <a class="readmore" onclick="show_alert('<?php echo "hello";?>')">Readmore....</a>
    
    <?php
    call();
    function call(){
    ?>
    <script>
    function show_alert(link) {
      alert(link);
    }
    </script>
    <?php }
    ?>
    </body>
    </html>
  

С помощью Jquery:

   <!DOCTYPE html>
    <html>
    <body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <p id="demo"></p>
    
    <a class="readmore" link="test">Readmore....</a>
    
    <?php
    call();
    function call(){
    ?>
    <script>
      $(".readmore").click(function(){
      link = $(".readmore").attr("link");
       alert(link);
      });
    </script>
    <?php }
    ?>
    </body>
    </html>
  

Комментарии:

1. Извините, я хочу использовать в jquery не простой javascript

2. Хорошо, пожалуйста, посмотрите на код. Теперь это выполняется с помощью Jquery и основано на ссылке атрибута вместо функции OnClick, которая не определена. Вот почему он создал объект [ошибка объекта]