Используйте Javascript onClick Event, чтобы перейти к href дочернего элемента

Из-за некоторой странности я застрял с использованием javascript для Jquery, чтобы получить ссылку для работы, щелкнув родительский элемент li. Если щелкнуть в любом месте на li, пользователь должен перейти по ссылке a, которая является его прямым потомком. То, что у меня далеко, похоже, не работает. Код:

<ul>
<li onclick="location.href='$(this).children('a:first').attr('href')';">
    <a href="http://example.com/">link</a>
    </li>
    </ul> 

Спасибо!

3 ответа

Решение

Когда вы ставите одинарные кавычки вокруг href, он рассматривается как строка. Кроме того, вы использовали одинарные кавычки в других одинарных кавычках, что преждевременно заканчивает строку. Он буквально пытается перейти к URL "$(this).children(".

Вместо этого удалите одинарные кавычки вокруг location.href

<ul>
    <li onclick="location.href=$(this).children('a:first').attr('href');">
        <a href="http://example.com/">link</a>
    </li>
</ul> 

Кроме того, вы действительно не должны использовать встроенные скрипты, как это. Гораздо лучше добавить тег сценария внизу страницы и поместить туда сценарий, который привязывает событие click к li.

Вы могли бы упростить свой код, переместившись не с помощью onclick, а с помощью селектора для нацеливания на этот узел и создания там события click.

$(".myUl li").on("click", function() {
    location.href = $(this).children("a").attr("href");
});

Но вы действительно должны решить эту проблему с помощью CSS. Ты можешь использовать display: block; на <a> Кроме того, они должны заполнять содержимое, добавлять дополнительные отступы и в основном вести себя как div, но сохраняют возможность связывания.

Заменить этим

    <li onclick="location.href=$(this).children('a:first').attr('href');">
Другие вопросы по тегам