[JS] pobieranie id zamiast textu

0

Witam,
Mam taki kod html:

<ul id="list">
	<li class="list-item">Element #1</li>
	<li class="list-item">Element #2</li>
	<li class="list-item">Element #3</li>
	<li class="list-item">Element #4</li>
	<li class="list-item">Element #5</li>
	<li class="list-item">Element #6</li>
</ul>

i żeby pobrać w JS wartość trzeba wpisać:

var items = $('list').getElementsByClass('list-item');

Jak mam zrobić żeby np:

<li class="list-item">Element #1</li> ===> A
<li class="list-item">Element #2</li> ===> B
...

czyli że nie pobiera mi zawartości (Element #1) tylko jakiś przypisany mu znak (typu 1,2,3 lub A,B,C).

Chodzi mi o to że w bazie danych Element #1 ma id np: 23 i żeby nie dawać w window.location.href tej zawartości (textu) tylko numer id z bazy danych. (to jak nadać numer id to wiem, tylko nie wiem jak go zapisać tak by na stronie był widoczny text, a var items poierał numer).

Bardzo proszę o odpowiedź.

0

A nie łatwiej przy generowaniu w php tej listy dać w jej elementach

<ul id="list">
        <li class="list-item" id="list-item_A"><a href="/sciezka/A">Element #1</a></li>
        <li class="list-item" id="list-item_B"<a href="/sciezka/B">Element 2#</a></li>
</ul>

? (będzie działać nawet jak js będzie wyłączony)

Ale jeśli się upierasz, to możesz na przykład zrobić

<ul id="list">
        <li class="list-item" id="list-item_A">Element #1</li>
        <li class="list-item" id="list-item_B">Element #2</li>
</ul>

i w js wybierasz

js napisał(a)

var id = $('list').getElementsByClass('list-item')[0].id // string 'list-item_A'
var x = wybierz_ze_stringa_id_po_podkresleniu(id);
window.location.href = 'sciezka' + x;

O to chodziło?

I jeszcze jedno - jeśli używasz prototype, to zamiast $('list').getElementsByClass('list-item')
możesz zrobić na przykład $$('li.list-item'); nie jest to dokładnie to samo, ale może o ten efekt Ci chodzi...

0

Dzięki,
W tej linijce:

var id = $('list').getElementsByClass('list-item')[0].id // string 'list-item_A'

Czemu dałeś "zero"? stworzyłeś z tego tablice? Czy chodzi o to że wszystkie klasy mają tą samą nazwę ale dalsza część jest inna?

I jeszcze jedno, czy może być tak?:

<ul id="list">
        <li id="list-item_A">Element #1</li>
        <li id="list-item_B">Element #2</li>
</ul>

I czy teraz da się to pobrać? Chodzi mi tylko o numerowałe właśnie w taki sposób.

0

getElementsByClass zawsze zwraca kolekcję elementów.

0
Atverstyt napisał(a)

I jeszcze jedno, czy może być tak?:

<ul id="list">
        <li id="list-item_A">Element #1</li>
        <li id="list-item_B">Element #2</li>
</ul>

I czy teraz da się to pobrać? Chodzi mi tylko o numerowałe właśnie w taki sposób.

Nie bardzo widzę różnicę... Chodzi o to, że nie ma tam zdefiniowanego atrybutu class?

1 użytkowników online, w tym zalogowanych: 0, gości: 1