Schrift
[thread]10819[/thread]

zugriff auf unbekannte id



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Froschpopo
 2007-11-18 18:53
#102537 #102537
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
habe folgendes Script:

Code: (dl )
1
2
3
<ul>
<li id="mir_unbekannte_id"><a href="#" onClick="Funktion();"></li>
</ul>


wie kann ich jetzt in Funktion() herausbekommen, welchen Wert id von li hat?
Das Problem: Ich kann nur den Link editieren. Die id ist mir unbekannt und kann im Grunde jeden beliebigen Name haben.
Ich habe ausserdem NUR Einfluss auf den Link, deshalb kann ich die id auch nicht als Parameter an Funktion() übergeben.
Ich brauche aber unbedingt innerhalb der Funktion() den id-Wert.
pktm
 2007-11-18 18:57
#102538 #102538
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Kanst du nicht in dieser Hierarchie (DOM?) auf das Elternelement zugreifen? Das müsste dann doch der Listeneintrag sein, und der wiederum hat eine Id...
http://www.intergastro-service.de (mein erstes CMS :) )
GwenDragon
 2007-11-18 19:28
#102539 #102539
User since
2005-01-17
14548 Artikel
Admin1
[Homepage]
user image
this.parentNode.id dürfte das wohl sein.

[html]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Titel</title>
<script type="text/javascript">
function Funktion(o) {
alert(o.parentNode.id);
}</script>
</head>

<body>
<ul>
<li id="mir_unbekannte_id"><a href="#" onClick="Funktion(this);">a</a></li>
</ul>
</body>

</html>
[/html]
this ist das aktuelle Element, welches das Event click ausgelöst hat, also a innehalb li. Deswegen ist li das Elternelement von a.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Froschpopo
 2007-11-18 20:07
#102540 #102540
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
>>o.parentNode.id

das scheint mir das richtige zu sein :) Danke!
Struppi
 2007-11-19 02:53
#102549 #102549
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Nur ist die ID hier i.d.R. völlig unnötig, wozu brauchst du die?
Das Element selber steht ja schon in parentNode
Froschpopo
 2007-11-19 14:20
#102566 #102566
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Meine Anwendung sieht in etwa so aus:
Code: (dl )
1
2
3
4
5
6
onClick="AddBuddy(this);

function AddBuddy (object) {
var id = object.parentNode.id;
document.getElementById(id).style.background = '#000';
}


Ich kann die objektreferenz von this ja schlecht durch getElementById schicken. Und den parentNode auch nicht, weil es ja eben ein Node ist wie der Name schon sagt.
renee
 2007-11-19 14:38
#102569 #102569
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du brauchst trotzdem für den Fall keine id.

Code: (dl )
1
2
3
4
    function Funktion(object) {
var parent = object.parentNode;
parent.style.background = '#000';
}


funktioniert auch.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2007-11-19 15:36
#102579 #102579
User since
2005-01-17
14548 Artikel
Admin1
[Homepage]
user image
Eben. Wozu nochmals mit document.getElementById(id) drauf zugreifen. In Object ist ja das geklickte Element drin.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Struppi
 2007-11-19 16:23
#102585 #102585
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Froschpopo+2007-11-19 13:20:58--
Ich kann die objektreferenz von this ja schlecht durch getElementById schicken. Und den parentNode auch nicht, weil es ja eben ein Node ist wie der Name schon sagt.
Dir scheint einiges nicht klar zu sein, was denkst du was dir getElement.. zurück gibt?

Wenn du ein bisschen versucht hättest zu verstehen was wir meinen und was dein Problem hier ist, hättest du z.b. mal:

var id = object.parentNode.id;
var o = document.getElementById(id)
alert(object.parentNode == o);

machen können und gemerkt, das o und parentNode identisch ist.
GwenDragon
 2007-11-19 17:20
#102588 #102588
User since
2005-01-17
14548 Artikel
Admin1
[Homepage]
user image
Froschpopo du hast wenig Erfahrung mit Javascript, DOM und Objekten, oder?

Wie wäre es, wenn du bitte etwas über JS lernst?
http://www.teialehrbuch.de/Kostenlose-Kurse/JavaSc...

Dann könntest du auch deine eigenen Programmierwünsche besser verstehen. ;)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2007-11-18 18:53.