• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zwracanie odnośnika do elementu $(this)

Object Storage Arubacloud
0 głosów
156 wizyt
pytanie zadane 24 sierpnia 2017 w JavaScript przez kevin Mądrala (5,010 p.)

Witam!

Nie rozumiem czemu nie mogę zwrócić wskaźnika jQuery na element za pomocą poniższego kodu. Zwracając $(this) zwracam w pewnym sensie this które działa tylko wewnątrz funkcji czy globalny odnośnik do elementu ?
Wykonanie instrukcji get_element_by_text ("akapit").text ("nowy napis");
Nie chcę powielać kodu a mam kilka funkcji które raz na jakiś czas wyszukują element na podstawie zawartości ( kilku wyrazów ) i usuwają go bądź zmieniają zawartość na inne wyrazy i nie chce w każdej funkcji pisać tego samego wyszukiwania.

 


function get_element_by_text ( looking_text )
{
	$("#element-container").find("a").each( function()
	{
            var current_text = $(this).text();

            if(current_text === looking_text)
            {
			return $(this);
            }
	});      
	
	return null;
}

var pointer = get_element_by_text ("akapit");
pointer.text("nowy napis");

 

1 odpowiedź

0 głosów
odpowiedź 24 sierpnia 2017 przez niezalogowany

return $(this) zwraca wartość dla funkcji anonimowej w .each <- co za tym idzie, absolutnie nic nie robi. 

get_element_by_text zawsze zwróci null

1
komentarz 24 sierpnia 2017 przez niezalogowany
komentarz 24 sierpnia 2017 przez kevin Mądrala (5,010 p.)
Dziękuje za wytłumaczenie
komentarz 24 sierpnia 2017 przez niezalogowany

$("#element-container a"), zamiast find("a")

W if w .each warto zwrócić false - wtedy .each zakończy swoje działanie i nie będzie sprawdzał niepotrzebnie dalej.

Polecam pisać otwarcia nawiasów klamrowych w linijkach, których te otwarcia dotyczą, nie pod nimi, bo czasami się można zdziwić.

komentarz 24 sierpnia 2017 przez kevin Mądrala (5,010 p.)

Nie bardzo rozumiem z tym zwracaniem false w each.

W jaki sposób mogę się zdziwić ?

Już myślałem żeby zrobić to tak:

<a data-text-id="tekst do identyfikacji">tekst do identyfikacji</a>

$("#element-container a[data-text='tekst do identyfikacji'")

komentarz 24 sierpnia 2017 przez niezalogowany

Nie bardzo rozumiem z tym zwracaniem false w each.

Wyobraź sobie, że masz 15 elementów po których robisz .each
Okazuje się, że tekst, którego szukasz jest już w drugim z nich.
Zamiast przeszukiwać bez sensu kolejnych 13 elementów, zwróć false w .each, aby zakończyć tę funkcję po drugim elemencie.

W jaki sposób mogę się zdziwić ?

function fn() 
{
	return 
	{
		id: 12
	}
}

Co zwróci fn()? W JS-owym community piszę się raczej w tych samych linijkach. Popatrz na kod popularnych projektów, lub w dowolną dokumentację.

Już myślałem żeby zrobić to tak:

<a data-text-id="tekst do identyfikacji">tekst do identyfikacji</a>

$("#element-container a[data-text='tekst do identyfikacji'")

Imo nie ma sensu powielać treści

Podobne pytania

0 głosów
1 odpowiedź 651 wizyt
pytanie zadane 2 grudnia 2016 w JavaScript przez Wilier Bywalec (2,570 p.)
0 głosów
1 odpowiedź 223 wizyt
pytanie zadane 28 czerwca 2019 w JavaScript przez tomek2323 Bywalec (2,050 p.)
0 głosów
1 odpowiedź 184 wizyt
pytanie zadane 24 października 2019 w JavaScript przez kordix Gaduła (3,910 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...