как я могу объединить строку и переменную в селекторе jquery? - PullRequest
0 голосов
/ 02 августа 2020
<?php
for($i=0;$i<5;$i++){
?>
<button id="text<?php echo $i; ?>">hello </button>
<script>
var i=<?php echo $i; ?>;
  $(document).ready(function(){
     $("#text"+i).click(function(){
             alert("hello");
   })

})

</script>
<?php } ?>

Если у меня есть переменная id, как это, и я хочу вызвать ее в jQuery, используя этот код, это не даст мне результата. В чем проблема? Как я могу назвать такой элемент button?

Ответы [ 2 ]

3 голосов
/ 02 августа 2020

Было бы лучше вынести скрипт из l oop, получить все кнопки сразу и затем привязать событие щелчка:

// Create all buttons, with class "text-button"
<?php for($i=0;$i<5;$i++): ?>
  <button class="text-button" id="text<?php echo $i; ?>">hello </button>
<?php endif; ?>

<script>
// On document ready
$(document).ready(function() {
  // Find all buttons with class "text-button"
  $(".text-button").click(function(e) {
    alert("hello");

    // Log the clicked button
    console.log(e.currentTarget);
    console.log(e.currentTarget.id);
  })
})
</script>
0 голосов
/ 02 августа 2020

Я доволен ответом @ Emre. А также удаление $(doucment).ready() решит вашу проблему. Вот так.

<?php
for($i=0;$i<5;$i++){
?>
<button id="text<?php echo $i; ?>">hello </button>
<script>
var i=<?php echo $i; ?>;
     $("#text"+i).click(function(){
             alert("hello");
   });
</script>
<?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...