Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вставить ссылку в список. (https://javascript.ru/forum/events/82479-vstavit-ssylku-v-spisok.html)

ureech 18.05.2021 17:26

let hash;var link;
$(document).on("click", ".mobile_menu_container .parent", function(e) {
                e.preventDefault();
		var $this = $(this);
		 hash = $this.attr('href');
		 link = jQuery('a[href^="${location.hash}"]');
}


$(document).on("click", ".mobile_menu", function(e) {
e.preventDefault();
alert(link) // неопределенна
}

рони 18.05.2021 18:37

ureech,
видимо мы друг друга, не понимаем ...

ureech 18.05.2021 20:04

<div class="menu_container">
	<a href="#" class="mobile_menu">Показать меню</a>
</div>
<div class="mobile_menu_container">
	<div class="mobile_menu_content">
		<ul>
			<li class="is-active">
				<a href="#" class="">Компьютерная техника1</a>
				<ul><li class="is-active">
					<a href="#" class="">Компьютерная техника2</a>
					<ul class="СЮДА"><li class="is-active">
						<a href="#" class="">Компьютерная техника3</a>
					</li></ul></li></ul></li></ul>
	</div>
</div>

Нужно получить последний <li class="is-active"> и его <ul> присвоить класс

ureech 18.05.2021 20:37

Ну вроде получил. Хотя меню пока как нужно не работает)
$(document).on("click", ".mobile_menu", function(e) {
		e.preventDefault();
		let menu = document.querySelector('.mobile_menu_container');
		let add = menu.querySelectorAll('li.is-active');
		
		link = add[(add.length)-1];
		link = $(link).parent();
		console.log($(link))
		
		if(link){
					
			$(".mobile_menu_container").addClass("loaded");
			$(".mobile_menu_overlay").fadeIn();
			$(link[0]).addClass("loaded").addClass("activity");
			}else{
			$(".mobile_menu_container").addClass("loaded"), $(".mobile_menu_overlay").fadeIn()
		}
		
	})

рони 18.05.2021 20:37

ureech,
<!DOCTYPE html>

<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css"> ul.test{
        background-color: #FF0000;
    }

    </style>

</head>

<body>
<div class="menu_container">
    <a href="#" class="mobile_menu">Показать меню</a>
</div>
<div class="mobile_menu_container">
    <div class="mobile_menu_content">
        <ul>
            <li class="is-active">
                <a href="#" class="">Компьютерная техника1</a>
                <ul><li class="is-active">
                    <a href="#" class="">Компьютерная техника2</a>
                    <ul class="СЮДА"><li class="is-active">
                        <a href="#" class="">Компьютерная техника3</a>
                    </li></ul></li></ul></li></ul>
    </div>
</div>
<script>
let lis = [...document.querySelectorAll("li.is-active")];
lis.length &&  lis.pop().parentNode.classList.add("test");
</script>

</body>
</html>

ureech 18.05.2021 20:40

Ну...У вас то покороче)))

рони 18.05.2021 20:41

ureech,
lis.length добавлено

рони 18.05.2021 20:54

ureech,
<!DOCTYPE html>

<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    ul.test{
        background-color: #FF0000;
    }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

    <script>
$(function() {
$("li.is-active:last").parent().addClass("test");
});
    </script>
</head>

<body>
<div class="menu_container">
    <a href="#" class="mobile_menu">Показать меню</a>
</div>
<div class="mobile_menu_container">
    <div class="mobile_menu_content">
        <ul>
            <li class="is-active">
                <a href="#" class="">Компьютерная техника1</a>
                <ul><li class="is-active">
                    <a href="#" class="">Компьютерная техника2</a>
                    <ul class="СЮДА"><li class="is-active">
                        <a href="#" class="">Компьютерная техника3</a>
                    </li></ul></li></ul></li></ul>
    </div>
</div>
</body>
</html>

ureech 18.05.2021 20:56

add.length && add.pop().parentNode.classList.addClass("loaded").addClass("activity");
[HTML]Uncaught TypeError: add.pop is not a function[/HTML]

console.log(add):
NodeList(3) [ li.is-active, li.is-active, li.is-active]
​
0: <li class="is-active">​
1: <li class="is-active">​
2: <li class="is-active">
​
length: 3

рони 18.05.2021 21:03

ureech,
let lis = document.querySelectorAll("li.is-active");
lis.length && lis[lis.length - 1].parentNode.classList.add("test");


Часовой пояс GMT +3, время: 14:56.