Ist es möglich, ein untergeordnetes dom-Element abzurufen, das das erste untergeordnete Element eines bestimmten Typs ist?
Zum Beispiel möchte ich in diesen beiden Beispielen das img
Element erhalten:
<a id="mylink" href="#"><img src="myimage.jpg" /></a>
vs.
<a id="mylink" href="#"><span></span><img src="myimage.jpg" /></a>
javascript
dom
Felix Kling
quelle
quelle
span
.class
durchclass
würde das Problem lösen. Die Antworten wären auch unterschiedlich:.getElementsByClassName('mylink')[0]
(oder welcher Index auch immer) und.querySelector('.mylink')
. Bei IDs ist die Antwort mit der höchsten Bewertung falsch, da bei dem ersten Element<a id=mylink></a>
kein<img>
Element ausgewählt ist.vs.
dazwischen und das ist, was ich glaube, das OP beabsichtigt.Antworten:
Versuche dies
var firstIMG = document.getElementById('mylink').getElementsByTagName('img')[0];
quelle
Sie können auch verwenden
querySelector
:var firstImg = document.querySelector("#mylink > img:first-of-type");
quelle
:first-child
muss ersetzt werden durch:first-of-type
.var anchor = document.getElementById('mylink'); var images = anchor.getElementsByTagName('img'); var image = images.length ? images[0] : null;
quelle
Hier ist eine Javascript-Funktion
function getFirst(con,tag) { return con.getElementsByTagName(tag)[0]; } //html markup <a id="mylink" href="#"><img src="myimage.jpg" /></a> <a id="mylink1" href="#"><img src="myimage.jpg" /></a> //test var con=document.getElementById('mylink'); var first=getFirst(con,'img');
quelle