> function sjov(elm) {
> alert(elm.innerHTML);
> }
>
> <DIV onclick="sjov(this)">meow</DIV>
>
> Skulle virke med stort set alle browsere der kan Javascript.
Altså det der med "this" skulle virke med stort set alle browsere. Jeg
valgte innerHTML fremfor innerText fordi innerHTML er understøttet af
flere browsere end innerText, men ingen af de to er standard. Hvis du
ikke ønsker at risikere at få HTML-kode med, så kan du bruge en funktion
som nedenstående til at trække "innertext" ud af et element. Funktionen
er baseret på ren standardiseret W3C DOM 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, lidt voldsomt. Men W3C DOM standarden indeholder ikke en simpel
funktion eller objekt-egenskab a'la MSIE's innerText.
Mvh. Stig
stig@rockland.dk
* Bedre (D)HTML ? -->
http://www.rockland.dk/stig/upghtml.html *