Hej Kim
Kim Noer wrote:
>>if(document.getElementById){
>> alert(document.getElementById("niels").innerText);
>>}
> Efter en masse roden rundt virker fl.g. også :
> var meow = document.all.tags("span");
> for(i=0;i<meow.length;i++) {
> if(meow[i].id == "niels")
> alert(meow[i].innerText);
> }
document.getElementById() er en del af W3C DOM standarden, det er
document.all[] ikke. Første eksempel virker dog alligevel kun i et
begrænsede antal browsere, da innerText heller ikke er standard, men
endnu en MS opfindelse.
Lidt bedre er det hvis du kan erstatte innerText med innerHTML.
innerHTML er godt nok heller ikke standard, men er alligevel
understøttet af flere browsere som f.eks. Netscape6+ og Mozilla.
Du kan også i stedet for innerText bruge en funktion som følgende, som
bygger på ren W3C DOM kompatibel kode:
function getConcatenedTextContent(node) {
var _result = "";
if (node == null) {
return _result;
}
var childrens = node.childNodes;
var i = 0;
while (i < childrens.length) {
var child = childrens.item(i);
switch (child.nodeType) {
case 1: // ELEMENT_NODE
case 5: // ENTITY_REFERENCE_NODE
_result += getConcatenedTextContent(child);
break;
case 3: // TEXT_NODE
case 2: // ATTRIBUTE_NODE
case 4: // CDATA_SECTION_NODE
_result += child.nodeValue;
break;
case 6: // ENTITY_NODE
case 7: // PROCESSING_INSTRUCTION_NODE
case 8: // COMMENT_NODE
case 9: // DOCUMENT_NODE
case 10: // DOCUMENT_TYPE_NODE
case 11: // DOCUMENT_FRAGMENT_NODE
case 12: // NOTATION_NODE
// skip
break;
}
i ++;
}
return _result;
}
Ja, W3C DOM standarden kan meget, men lige på det område er den lidt
besværlig (Nok derfor Netscape6+/Mozilla har fået support af innerHTML
selvom de ellers går meget op i ikke at understøtte for mange
non-standard ting i de browsere).
Mvh. Stig
stig@rockland.dk
* Bedre (D)HTML ?! -->
http://www.rockland.dk/stig/upghtml.html *