Hi,
ich möchte mich mit der Tastatur (Pfeiltasten) durch eine li-ste bewegen. Das jeweilige Listenelement soll in ein input-Feld übernommen werden.
Das ganze funktioniert mittels firstChild.nodeValue
für eine Liste in diesem Format:
<li>Text</li>
<li>Text 2</li>
Ich habe aber in jedem Listenelement einen Link und möchte gerne auf dessen id zugreifen:
<li><a id="wert" href="#">Text</a></li>
<li><a id="wert2" href="#">Text 2</a></li>
Allerdings bekomme ich hier immer nur 'null' zurück.
Wie kann ich jetzt die ID abfangen, gibt es statt nodeValue
sowas wie nodeId
?
function keynavigation (obj)
{
var curElement = null;
var naviElement = null;
function clearSpaces (strOut)
{
strOut = strOut.replace(/>\s+/gm, '>');
strOut = strOut.replace(/\s+</gm,'<');
strOut = strOut.replace(/>\s+</gm,'><');
return strOut;
}
function keyPressed (evt)
{
var curKey = evt.keyCode;
switch (curKey)
{
case 38:
if(curElement && curElement.previousSibling)
{
curElement = curElement.previousSibling;
document.getElementById('check').value = curElement.firstChild.nodeValue;
}
break;
case 40:
if(curElement)
{
if(curElement.nextSibling)
{
curElement = curElement.nextSibling;
document.getElementById('check').value = curElement.firstChild.nodeValue;
}
}
else
{
curElement = naviElement.firstChild;
document.getElementById('check').value = curElement.firstChild.nodeValue;
}
break;
case 13:
if(curElement)
{
alert(curElement.firstChild.nodeValue);
}
break;
default: return;
}
}
this.init = function ()
{
eventHandling(document,"keydown",keyPressed);
obj.innerHTML = clearSpaces (obj.innerHTML);
naviElement = obj;
}
}
<input type="text" id="check">
<div>
<ul id="navitree">
<li><a id="wert1" href="#">Text</a></li>
<li><a id="wert2" href="#">Merseburg</a></li>
</ul>
</div>