Ich möchte überprüfen, ob das div mit dem Klassennamen "divclass" ein Ankertag enthält. Wenn es enthält, muss ich Javascript-Code ausführen, sonst nichts zu tun.

<div class="divclass">
      <span> something text</span>
      <a href="/"> Anchor tag</a>
      <span> something text 2</span>
      <a href="/"> Anchor tag</a>
    </div>

Wie können wir das mit jquery machen?

BEARBEITEN: Im obigen HTML hat es das letzte Element als Ankertag, also möchte ich hier etwas Code machen, aber im unteren HTML habe ich kein Ankertag in div, also möchte ich nichts tun.

     <div class="divclass">
              <span> something text</span>
              <a href="/"> Anchor tag</a>
              <span> something text 2</span>
<span> something text 3</span>
            </div>
0
Irshad 9 Dez. 2013 im 15:29

5 Antworten

Beste Antwort

Verwenden Sie tagName, um den Namen des Tags abzurufen. Es gibt den Namen des Tags im Großbuchstaben zurück.

Versuchen:

$(".divclass").each(function () {
    if ($(this).find(":last").prop("tagName") == "A") {
        //do something
    }
});

DEMO hier.

2
Hiral 10 Dez. 2013 im 04:43

Sie können verwenden:

if($('.divclass').has('a')) {
    ...
}

ODER

if($('.divclass a').length > 0) {
    ...
}
1
techfoobar 9 Dez. 2013 im 11:33

Verwenden Sie die Funktion jquery last ().

Überprüfen Sie diese Demo

0
Cald 9 Dez. 2013 im 11:39

Sie müssen überprüfen, ob der letzte Bereich in der div-Klasse ein Ankertag hat. Richtig.

if($('.divclass span:last-child').find('a').length > 0) {
// your code here :)
0
Jabran Saeed 9 Dez. 2013 im 11:51

Eine andere Alternative;

if( $('.divclass>a:last').length !== 0 ) {

Eine JSfiddle zum Testen.

0
Joachim Isaksson 10 Dez. 2013 im 08:13