2017-10-07 1 views
-1

Ich habe eine HTML-Tabelle, muß ich die entsprechenden Felder erhalten, wenn die erste Zelle img Element hat.überprüfen, ob die erste Zelle in der Tabelle img-Tag hat jquery mit

Tabelle

<table id="ImgtableID"> 
<tbody> 
<tr> 
<th>img</th> 
<th>Title</th> 
</tr> 
<tr> 
<td><img src=""/></td> 
<td>Title</td> 
</tr> 
<tr> 
<td><img src=""/></td> 
<td>Title</td> 
</tr> 
<tr> 
<td>other value</td> 
<td>Title</td> 
</tr> 
<tr> 
<td><img src=""/></td> 
<td>Title</td> 
</tr> 
</tbody> 

</table> 

habe ich versucht, den Code unten, aber es hat nicht funktioniert:

$('#ImgtableID').find('tbody td:first-child').each(function() { 

if ($('img',this).length > 0) // also "$this.find('img').length" is not worked 
{ 

} 
}); 

Antwort

1

:first-child ist ursprünglich ein CSS Pseudo-Selektor, in jQuery, können Sie einfach :first verwenden

und ich denken Sie, sollte die <tr>, nicht die erste <td> Schleife.

Probieren Sie es aus:

$(function(){ 
    $('#ImgtableID tr').each(function() { 
     if ($(this).find('td:first img').length > 0) { 
      $(this).css('color','limegreen'); 
      //or anything you want 
     } 
    }); 
}); 

Fiddle: https://www.bootply.com/TVfueIHPIA

+0

Beide Arbeiten Chef mehr als 0 sein wird. ':)' Es ist auch ein Selektor in jQuery. –

+1

@ PraveenKumar okay, ich wusste es nicht. Aktualisiert! :-) –

+0

Ich stelle dies als eine Antwort, weil die anderen Antworten Dankeschön sind! –

2

Die find('tbody td:first-child')gibt nur ein Knoten. Ich habe wie diese geschlungen, auf dem Selektor, der mehrere Knoten gibt:

$(function() { 
 
    $("#ImgtableID").find("tr").each(function() { 
 
    if ($(this).find("td").first().children("img").length == 1) 
 
     console.log("Found Image"); 
 
    else 
 
     console.log("No Image"); 
 
    }); 
 
});
<script src="https://code.jquery.com/jquery-2.2.4.js"></script> 
 
<table id="ImgtableID"> 
 
    <tbody> 
 
    <tr> 
 
     <th>img</th> 
 
     <th>Title</th> 
 
    </tr> 
 
    <tr> 
 
     <td><img src=""/></td> 
 
     <td>Title</td> 
 
    </tr> 
 
    <tr> 
 
     <td><img src=""/></td> 
 
     <td>Title</td> 
 
    </tr> 
 
    <tr> 
 
     <td>other value</td> 
 
     <td>Title</td> 
 
    </tr> 
 
    <tr> 
 
     <td><img src=""/></td> 
 
     <td>Title</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

1

$('#ImgtableID').find('tbody td:first-child') gibt nur erste td vom Tisch.

Sie sollten alle durch die tr Zeilen aus einer Tabelle und get ersten td mit :first-childPseudo-Klasse oder mit eq Methode suchen.

eq Verfahren reduziert die Gruppe angepaßter Elemente zum einen am angegebenen Index.

Mit eq Methode.

let containsImage=$(this).find('td:eq(0) img').length>0; 

$('#ImgtableID').find('tbody tr').each(function() { 
 
    let containsImage=$(this).find('td:first-child img').length>0; 
 
    console.log(containsImage); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="ImgtableID"> 
 
<tbody> 
 
<tr> 
 
<th>img</th> 
 
<th>Title</th> 
 
</tr> 
 
<tr> 
 
<td><img src=""/></td> 
 
<td>Title</td> 
 
</tr> 
 
<tr> 
 
<td><img src=""/></td> 
 
<td>Title</td> 
 
</tr> 
 
<tr> 
 
<td>other value</td> 
 
<td>Title</td> 
 
</tr> 
 
<tr> 
 
<td><img src=""/></td> 
 
<td>Title</td> 
 
</tr> 
 
</tbody> 
 

 
</table>

1

können Sie wählen die img Elemente in den td Elementen enthalten ist, die die erste Kind ist ihr tr Element mit diesem DOM-Selektor enthält:

tbody td:first-child img 

Und dann Es ist nicht klar, was du damit machen willst. Wenn zum Beispiel möge Sie neben den einer gewissen Wert aus dem td Elemente erhalten, die die img enthält, Sie die .parent() der img bekommen konnten, und dann mit .next() nächsten td Elemente, zum Beispiel:

.
$('#ImgtableID').find('tbody tr td:first-child img').each(function() { 
    console.log($(this).parent().next().text()); 
}); 
0
$("table tr:first-child td:first-child img").length > 0 

OR $ ("# ImgtableID tr: first-child td: first-child img") Länge> 0 - für Ihre ID-Tabelle

bedeutet, dass, wenn ersten td tag erster tr-Tag-Tabelle enthält img tag Länge

Verwandte Themen