Der folgende Beitrag wurde am 15. 09. 2009, 15:24 Uhr von djcampi veröffentlicht.
hallo zusammen, ich brauche dringend eure hilfe.
ich habe mehrere div container, die mit der id "Intro" beginnen. dynamisch werden verschiedene endungen angehängt. so gibt es beispielsweise "IntroA", "IntroB","IntroC",usw.
wie ist es nun möglich, dass ich mit einem css befehl alle diese verschiedenen Intros anspreche??
Wenn ich z.b. bei windows nach allen intro dateien, die ich auf dem rechner habe suchen wollte, würde ich in das suchfeld intro* eintippen. gibt es solch eine einfache lösung nicht auch für html oder php?
vielen dank schonmal im voraus
Der folgende Beitrag wurde am 15. 09. 2009, 15:30 Uhr von Hopsel veröffentlicht.
Hi djcampi!
> wie ist es nun möglich, dass ich mit einem css befehl alle diese verschiedenen Intros anspreche??
Es gibt für CSS Attributselektoren.
> Wenn ich z.b. bei windows nach allen intro dateien, die ich auf dem rechner habe suchen wollte, würde ich in das suchfeld intro* eintippen. gibt es solch eine einfache lösung nicht auch für html oder php?
Wenn du Einfluss auf die Ausgabe des HTML-Codes hast, würde ich dir empfehlen, eine Klasse für die Elemente zu vergeben. Für nichtlebenswichtige Layoutverbesserungen reicht aber ein Attributselektor.
MfG H☼psel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
Der folgende Beitrag wurde am 15. 09. 2009, 15:30 Uhr von Beat veröffentlicht.
> ich habe mehrere div container, die mit der id "Intro" beginnen. dynamisch werden verschiedene endungen angehängt. so gibt es beispielsweise "IntroA", "IntroB","IntroC",usw.
>
> wie ist es nun möglich, dass ich mit einem css befehl alle diese verschiedenen Intros anspreche??
http://de.selfhtml.org/css/formate/zentrale.htm#attributbedingte
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
Der folgende Beitrag wurde am 15. 09. 2009, 16:07 Uhr von djcampi veröffentlicht.
d.h. ich kann mit *[id|=Intro] alle meine Intros ansprechen?
nun habe ich einen link und wenn man da draufklickt sollen alle Intros nicht mehr sichtbar sein. kann ich das dann so eingeben:
<a onclick="document.getElementById(*[id|=Intro]).style.visibility="hidden"">
Der folgende Beitrag wurde am 15. 09. 2009, 16:11 Uhr von djcampi veröffentlicht.
oder doch eher so?
<a onclick="document.all.style.*[id|=Intro].visibility="hidden"">
Der folgende Beitrag wurde am 15. 09. 2009, 16:37 Uhr von EKKi veröffentlicht.
Mahlzeit djcampi,
> oder doch eher so?
Aus verschiedenen Gründen so schon mal *gar nicht*:
> <a onclick="document.all.style.*[id|=Intro].visibility="hidden"">
1.)
Hier beginnt -^ der Attributwert und hier ender er -------^ ... das Folgende ist ungültiger Code.
2.)
"document.all" verstehen vernünftige Browser nicht - kein Wunder, ist ja auch kein Standard.
3.)
Du hast bisher von CSS gesprochen und als Themenbereich CSS gewählt - die Lösungsvorschläge bezogen sich also auch darauf. Wenn Du ein Javascript-Problem hast, dann solltest Du es auch entsprechend kennzeichnen. Alternativ solltest Du in deinem Eröffnungsbeitrag darauf hinweisen, dass Du eine Lösung für Javascript suchst.
4.)
Du solltest Dir Hopsels und Beats Beiträge (nochmals) genauer durchlesen ... insbesondere zum Thema "Klassen".
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Der folgende Beitrag wurde am 15. 09. 2009, 16:26 Uhr von Beat veröffentlicht.
> nun habe ich einen link und wenn man da draufklickt sollen alle Intros nicht mehr sichtbar sein. kann ich das dann so eingeben:
> <a onclick="document.getElementById(*[id|=Intro]).style.visibility="hidden"">
das würde nach einer id="*[id|=Intro]" suchen, also nach einer ungültigen ID.
Wenn du nach einer Selektorsprache für JS suchst, dann musst du ein Framework wie JQuery verwenden.
Für deinen Zweck sind Klassen angemessen.
class="common special"
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
Der folgende Beitrag wurde am 15. 09. 2009, 16:32 Uhr von djcampi veröffentlicht.
> Für deinen Zweck sind Klassen angemessen.
> class="common special"
okay, und wie greife ich auf eine classe mit "onclick" zu?
es soll irgendwie einfach nur alle mit intro beginnenden ids oder eben eine bestimmte klasse mit einem mausklick ausgeblendet werden.
Der folgende Beitrag wurde am 15. 09. 2009, 16:41 Uhr von EKKi veröffentlicht.
Mahlzeit djcampi,
> > Für deinen Zweck sind Klassen angemessen.
> > class="common special"
>
> okay, und wie greife ich auf eine classe mit "onclick" zu?
Es ist vollkommen egal, ob Du "mit onclick" oder an einer anderen Stelle auf Elemente, die die gleiche Klasse besitzen, zugreifen willst.
Da das document-Objekt leider nur die Methoden getElementById(), getElementsByName() sowie getElementsByTagName(), nicht jedoch "getElementsByClassName()" kennt, musst Du Dir eine entsprechende Wrapper-Funktion selbst schreiben ... oder Du benutze ein Framework (wie z.B. Prototype, jQuery, mooTools o.ä.), das eine entsprechende Funktionalität beinhaltet.
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Der folgende Beitrag wurde am 15. 09. 2009, 16:48 Uhr von djcampi veröffentlicht.
okay, und ist es möglich bei getElementsByTagName()divs anzusprechen, die einer klasse zugeordnet sind? sprich: getElementsByTagName("div.intro") z.b.?
Der folgende Beitrag wurde am 15. 09. 2009, 16:54 Uhr von EKKi veröffentlicht.
Mahlzeit djcampi,
> okay, und ist es möglich bei getElementsByTagName()divs anzusprechen, die einer klasse zugeordnet sind? sprich: getElementsByTagName("div.intro") z.b.?
Nein (das könnten die von mir und Beat genannten Frameworks) - Du könntest aber z.B. Dir erstmal alle <div>s heraussuchen (lassen) und anschließend mittels einer Schleife durch diese Auflistung hindurchgehen, überprüfen, ob das jeweilige <div> der gewünschten Klasse angehört (oder ob seine ID mit der von Dir gewünschten Zeichenkombination anfängt), und im Erfolgsfall irgendwas mit dem <div> machen.
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Der folgende Beitrag wurde am 15. 09. 2009, 16:43 Uhr von Beat veröffentlicht.
> > Für deinen Zweck sind Klassen angemessen.
> > class="common special"
>
> okay, und wie greife ich auf eine classe mit "onclick" zu?
>
> es soll irgendwie einfach nur alle mit intro beginnenden ids oder eben eine bestimmte klasse mit einem mausklick ausgeblendet werden.
Wenn es irgendwie einfach sein soll, dann verwende das Framework jquery, oder suche nach einer Funktion im Web, die getElementsByClass() erweitert implementiert hat.
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
Der folgende Beitrag wurde am 15. 09. 2009, 16:49 Uhr von djcampi veröffentlicht.
> Wenn es irgendwie einfach sein soll, dann verwende das Framework jquery, oder suche nach einer Funktion im Web, die getElementsByClass() erweitert implementiert hat.
ich schaue mir dieses jquery mal an, danke schonmal
Der folgende Beitrag wurde am 15. 09. 2009, 17:05 Uhr von Kai345 veröffentlicht.

> > es soll irgendwie einfach nur alle mit intro beginnenden ids oder eben eine bestimmte klasse mit einem mausklick ausgeblendet werden.
>
> Wenn es irgendwie einfach sein soll, dann verwende das Framework jquery, oder suche nach einer Funktion im Web, die getElementsByClass() erweitert implementiert hat.
Abgesehen davon, daß ich jQuery und Konsorten (immer noch) für Müll halte, ist es totaler Overkill, für diese Aufgabe ein solches Framewürg einzubinden.
getElementsByClassName() ist in den neuen Browsern nativ implementiert, ansonsten gibt es im Netz viele fertige Nachbildungen, z.B./**
* getElementsByClassName(searchClass[, vnode[, tag]])
* Elemente mit bestimmten Klassen-Namen finden
* @param string searchClass Der zu suchende Klassenname
* @param node vnode Node, dessen Kinder durchsucht werden sollen (default: document)
* @param string tag Tag-Name, auf die die Suche beschränkt werden soll (default: alle)
* @return array Array mit passenden Nodes
*/
if (typeof getElementsByClassName !== 'function') {
function getElementsByClassName(searchClass, vnode, tag) {
if (!document.getElementById || !document.getElementsByTagName || typeof searchClass !== 'string') {
return [];
}
if (vnode && typeof vnode === 'string') {
vnode = document.getElementById(vnode);
}
vnode = (vnode && typeof vnode === 'object' && vnode.nodeType === 1) ? vnode : document;
tag = (tag && typeof tag === 'string') ? tag : "*";
var classElements = [];
var els = vnode.getElementsByTagName(tag);
var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)", "gi");
var i = els.length;
/* Workaround für die 5er-IEs, die getElementsByTagName("*") nicht können */
if (document.all && !document.compatMode && tag === "*" && i === 0) {
els = vnode.all;
i = els.length;
}
while (i--) {
if (pattern.test(els[i].className)) {
classElements.unshift(els[i]);
}
}
return classElements;
}
}
Cü,
Kai
--
Hard to believe that anyone would use Prototype.js at this
point. It was a bad idea in 2006 and it hasn't gotten any better with age. (David Mark)
Foren-Stylesheet Site Selfzeugs
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
Der folgende Beitrag wurde am 15. 09. 2009, 17:20 Uhr von djcampi veröffentlicht.
> getElementsByClassName() ist in den neuen Browsern nativ implementiert, ansonsten gibt es im Netz viele fertige Nachbildungen, z.B.
das hört sich gut an :-)
und das kann ich dann z.b. so umsetzen?:
<a onclick="document.getElementsByClassName(intro).style.visibility='hidden';">
Der folgende Beitrag wurde am 15. 09. 2009, 17:49 Uhr von Kai345 veröffentlicht.

> > getElementsByClassName() ist in den neuen Browsern nativ implementiert, ansonsten gibt es im Netz viele fertige Nachbildungen, z.B.
>
> das hört sich gut an :-)
> und das kann ich dann z.b. so umsetzen?:
> <a onclick="document.getElementsByClassName(intro).style.visibility='hidden';">
Nein. getElementsByClassName gibt eine NodeList (bzw. in der von mir geposteten Nachbildung ein Array) zurück. getElement_s_, also Mehrzahl.
Das heißt, diese Elemente müssen dann noch selektiert werde, d.h. entweder für ein bestimmtes Element über einen Index z.B. document.getElementsByClassName("intro")[0] für das erste Element oder in einer (for/while)-Schleife abgearbeitet werden, wenn alle Elemente betroffen sind. Daher solltest du das Javascript auch aus dem onclick-Attribut rausnehmen und in einem Script-Block als Funktion notieren, im onclick-Attribut steht dann nur noch der Funktiona-Name.
Beispiel:function chgVisi (clas, vis) {
// hier ggf. Überprüfung auf sinnvolle Typen/Werte von clas und vis
var els = getElementsByClassName(clas),
l = els.length,
i,
els;
for (i = 0; el = els[i]; i++) {
el.style.visibility = vis;
}
}<a ... onclick="chgVisi('intro', 'hidden')">
ungetestet.
Cü,
Kai
--
Hard to believe that anyone would use Prototype.js at this
point. It was a bad idea in 2006 and it hasn't gotten any better with age. (David Mark)
Foren-Stylesheet Site Selfzeugs
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
Der folgende Beitrag wurde am 15. 09. 2009, 18:47 Uhr von djcampi veröffentlicht.
du bist der hammer :-)
es funktioniert
vielen vielen dank
Der folgende Beitrag wurde am 15. 09. 2009, 19:24 Uhr von ChrisB veröffentlicht.
Hi,
> > es soll irgendwie einfach nur alle mit intro beginnenden ids oder eben eine bestimmte klasse mit einem mausklick ausgeblendet werden.
>
> Wenn es irgendwie einfach sein soll, dann verwende das Framework jquery, oder suche nach einer Funktion im Web, die getElementsByClass() erweitert implementiert hat.
Oder löse die Selektion rein mit CSS, in dem du eine Regel mit Nachfahrenselektor anlegst; und dann mit JS einem übergeordneten Element eine zusätzliche Klasse verpasst, die den Nachfahrenselektor wirksam werden lässt.
MfG ChrisB
--
Light travels faster than sound - that's why most people appear bright until you hear them speak.
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4