Доступ к объекту в jQuery

185
30 мая 2018, 04:10

Есть скрипт:

<?php
    while ($result = mysqli_fetch_assoc($query)) {?>
        <a class="like-icon" href="#"></a>
        <span class="like-count">23</span>
    <?php
    }
?>

Я хочу получить доступ к span при нажатии на $(".like-icon") с помощью jQuery. Вот неправильный код (для демонстрации):

$(document).ready(function () {
    $(".like-icon").on("click", function () {
        var number = $(this .like-count).html();
    })
})
Answer 1

Лучше использовать .next() с аргументом, содержащим селектор родственника:

$('.like-icon').click(function () { 
  var result = $(this).next('.like-count');  // выбираете искомый элемент...  
  if (result.length) { 
    result.css('color', 'red');              // ...и делаете с ним что пожелаете  
  } else { 
    console.log('.like-count не найден!');   // [опционально: если элемент не найден - выводим ошибку в консоль, и/или выполняем другие действия] 
  } 
}); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="like-icon" href="#">Link</a> 
<span class="like-count">23</span>

Потому что это заметно не повлияет на отзывчивость, и может уберечь от непредсказуемого поведения скрипта, если следующий элемент по каким-то причинам окажется не тем, что ожидается.

Answer 2

Так как span - это следующий элемент относительно ссылки, для его получения можно использовать метод .next

$(document).ready(function () {
    $(".like-icon").on("click", function () {
        var number = $(this).next().html();
    })
})
Answer 3

Выбирайте селектор правильно:

$(document).ready(function () {
    $(".like-icon").on("click", function () {
        var number = $(".like-icon .like-count").html();
    })
})
READ ALSO
Торговля на PHP [закрыт]

Торговля на PHP [закрыт]

Кто сталкивался или знает есть ли на PHP реализации торговли, управление остатками и тому подобное? Есть ли вообще в природе подобные проекты?...

194
Проблемы с pagination Yii2 gridview

Проблемы с pagination Yii2 gridview

У меня стоит kartik-v/grid и он выводит только 10 страниц

238
Как отправить get запрос, через vue axios (laravel)

Как отправить get запрос, через vue axios (laravel)

Подскажите, как отправить get-запрос во vuejs В общем, у меня есть кнопка и она отправляет данные по клику, и мне после нажатия на эту кнопку надо...

184