2016-07-10 4 views
0

Angenommen, ich habe ein div, das dynamisch von Eingaben gefüllt wird, die vom Benutzer eingegeben wurden. Wie überprüfen Sie, ob das letzte Kind in einem div ein <img> ist. Der HTML-Code unten gibt eine Vorstellung von dem, was ich erreichen möchte.Wie überprüft man, ob das letzte Kind in einem div <img> mit jquery ist?

<div> 
    <p>Some text</p> 
    <p>Some text</p> 
    <p>Some text</p> 
    <!-- Check if this is img element --> 
    <img src='example.jpg' > 
</div> 

Antwort

4

Um das letzte Kind eines Elements Sie How to select last child element in jQuery? verwenden zu erhalten:

$('div').children().last() 

Um zu testen, ob ein Element ein img Sie .is('img') verwenden ist.

Dann kombinieren Sie sie zu $('div').children().last().is('img')

Oder Sie parent > child Wähler in Kombination mit :last-child

$("div > img:last-child").length > 0 
1
<div id="myKey"> 
    <p>Some text</p> 
    <p>Some text</p> 
    <p>Some text</p> 
    <img src='example.jpg' > /* Check if this is img element*/ 
</div> 

und Code verwenden können:

var lastChild = jQuery("#myKey").children().last(); 
var isImg = lastChild.is("img"); //true or false 
0

Sie können :last-child Selektor und erhalten length o f Selektor oder verwenden .is() Verfahren wie unten Code

if ($("div > img:last-child").length > 0) 
// Or 
if ($("div > img").is(":last-child")) 

if ($("div img").is(":last-child")) 
 
    console.log("last child is img");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <p>Some text</p> 
 
    <p>Some text</p> 
 
    <p>Some text</p> 
 
    <img src='example.jpg' > 
 
</div>

+0

Dies wird auch 'Länge> 0' für'

Einige Text

Einige Text

', so ist es wahrscheinlich nicht die beste Lösung. –

+0

@ t.niese Nein, es funktioniert einwandfrei. – Mohammad

+0

Für dieses einfache Beispiel wird es funktionieren. Aber wenn das OP plant, das in einem komplexeren Code zu verwenden, könnte es ** scheitern **, weil es nicht überprüft, ob 'img' das letzte Kind von' div' ist, sondern es prüft, ob es 'img' Nachkommenschaft gibt (nicht Kind), das ist das letzte Kind seines Elternteils [siehe diese Geige] (https://jsfiddle.net/p91nk35u/). –

-1

Diese den Trick tun sollten:

$("div img:last-child") 
+1

Sie verwenden einen "Vorfahr-Nachkommen" Selektor, so dass es auch '

Einige Text

Einige Text

' finden, die wahrscheinlich nicht das ist, was das OP sucht. Daher ist es besser, '$ (" div> img: last-child ")' 'zu verwenden –

-1

var last = $('div').children().last(); 
 
if (last.is("img")) { 
 
    alert("image"); 
 
}
<div> 
 
    <p>Some text</p> 
 
    <p>Some text</p> 
 
    <p>Some text</p> 
 
    <img src='example.jpg' > /* Check if this is img element*/ 
 
</div>

Verwandte Themen