String an Links anhängen?!

Status
Nicht offen für weitere Antworten.
Wir wollen nicht das erste (und letzte ) Zeichen des Elements gestalterisch ändern, sondern vor und nach dem a-Element ein Zeichen anhängen -> siehe Topic.

Und mit den von dir genannten Pseudoklassen ist das automatische Generieren von Inhalten technisch nicht möglich.
 
Stellt sich die Frage, warum du sie dann überhaupt erwähnst, und es so den Eindruck erweckt, als könnnten sie dem Hilfesuchenden weiterhelfen.
 
Das sollte etwa wie folgt aussehen:
Code:
var aElements = document.getElementsByTagName("a");
for( var i=0; i<aElements.length; i++ ) {
	aElements[i].firstChild.insertBefore(document.createTextNode("["));
	if( aElements[i].firstChild.nextSibling ) {
		aElements[i].firstChild.nextSibling.insertBefore(document.createTextNode("["));
	} else {
		aElements.appendChild(document.createTextNode("["));
	}
}
 
Ich hatte mir das aus den Finger gesogen. Hier ein funktionierender Vorschlag:
Code:
for( var i=0; i<aElements.length; i++ ) {
	if( aElements[i].firstChild.nodeType == 3 ) {
		aElements[i].firstChild.nodeValue = "[" + aElements[i].firstChild.nodeValue;
	} else {
		aElements[i].insertBefore(document.createTextNode("["), aElements[i].firstChild);
	}
	if( aElements[i].lastChild.nodeType == 3 ) {
		aElements[i].lastChild.nodeValue = aElements[i].lastChild.nodeValue + "]";
	} else {
		aElements[i].appendChild(document.createTextNode("]"));		
	}
}
Funktioniert auch bei komplexeren Gebilden wie folgendem:
HTML:
<ul>
	<li><a href="">foobar</a></li>
	<li><a href=""><span>foobar</span></a></li>
	<li><a href="">foo<span>bar</span></a></li>
	<li><a href=""><span>foo</span>bar</a></li>
</ul>
Aber wahrscheinlich wäre es besser mit zusätzlichen span-Elementen zu arbeiten:
Code:
var aElements = document.getElementsByTagName("a");
for( var i=0; i<aElements.length; i++ ) {
	var newSpanElement = document.createElement("span");
	newSpanElement.className = "before";
	newSpanElement.appendChild(document.createTextNode("["));
	aElements[i].insertBefore(newSpanElement, aElements[i].firstChild);
	var newSpanElement = document.createElement("span");
	newSpanElement.className = "after";
	newSpanElement.appendChild(document.createTextNode("]"));
	aElements[i].appendChild(newSpanElement);
}
 
Status
Nicht offen für weitere Antworten.
Zurück