Beste,


Met jquery maak ik gebruik van de append functie, deze word aangeroepen d.m.v. een click functie.


$(element).click(function(){
$(body).append('<b class="text"></b>');
});


Telkens als ik klik dan word deze functie uitgevoerd, echter wil ik dat jquery hem niet meer toevoegd als hij al bestaat.
Nu had ik het volgende geprobeerd

$(element).click(function(){
if (!$('body').find('.text')){
alert ('is al aanwezig');
}else{
$('body').append('<b class="text"></b>');
}
});


Helaas werkt dit niet, weet iemand een andere manier hiervoor?


Gr. Jop
Kun je niet beter eerst een plekje reserveren in een document dmv een div-container met een uniek id, en dan controleren of deze leeg is of niet? Dat lijkt mij (ook) wat efficienter dan je hele document doorzoeken. Maak dus een soort van placeholder oid.
Beste Thomas,


Dank voor je reactie. Heb maar even een fiddle aangemaakt, want heb nog een situatie wat eiegenlijk op het zlefde neerkomt.

Fiddle

In deze situatie heb ik te maken met een button, deze button bevat text en is dus niet leeg (empty) toch wil ik controleren of er een bepaald element zicht hierin bevind.
Het is sowieso raar dat deze constructie:
if ($(this).find('.text')) {
    // doe iets
    // ...
} else {
    // doe niets
}

altijd werkt.

Blijkbaar is:
$(this).find('.text')

Altijd ongelijk aan false. .find() retourneert altijd een "niet leeg object".

Waar je naar op zoek was is dus waarschijnlijk zoiets:
if ($(this).find('.text').length == 0) {
    // doe iets
    // ...
} else {
    // doe niets
}

Dit zorgt ervoor dat het if-statement alleen true oplevert op het moment dat je nog geen div met klasse "tekst" hebt toegevoegd.
Wil je eigenlijk niet gewoon maar 1 keer de click functie uitvoeren?

[code lang=js]
$(element).once('click', function () {

$(body).append('<b class="text"></b>');

});[/code]
Dank voor alle reactie's

Zelfde had ik dit nog geprobeerd:

$(document).ready(function () {
    var check = $(".myDiv").length;
    console.log(check);
    if ($(".myDiv").length == 1) {
        alert ('aanwezig');
    }else{
    alert ('niet aanwezig');
    }
});


* Deze code heeft andere elementen nu, aangezien ik dit even los heb getest.

Reageren