Jquery: ?

  • Onderwerp starter Onderwerp starter Verwijderd lid 141197
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
V

Verwijderd lid 141197

[JS]
var oldcontent = $('.active').attr('class').replace('active', '').replace('content', '').replace(' ', '');
alert(oldcontent);
[/JS]

alert: undefined

:shocked::mad::confused::(:confused::eek:

wat gaat er fout?
 
Laatst bewerkt door een moderator:
Je gebruikt jQuery ;)



Anywho, staat er eigenlijk niet alleen dat je de 'class' attribuut van je elementen met de class 'active' veranderd? In plaats van de content van deze elementen?
 
.attr( attributeName )

attributeNameThe name of the attribute to get.

(je kan het hier niet mee veranderen tenzij je tussen de haakjes een komma zet dan is de laatste het nieuwe value )

maar ik test het toch even uit zonder de .replace

[JS]
var oldcontent = $('.active').attr('class');
alert(oldcontent);
[/JS]

alert: undefined




jquery API:

If we try to get the value of an attribute that has not been set, the .attr() method returns undefined.

html:

HTML:
<div class="content active home">
        <p>1</p>
</div>
 
Laatst bewerkt door een moderator:
oh trouwens ik kreeg ook deze "waarschuwing" in de foutconsole

Waarschuwing: Ontbrekend sluit-‘)’ in negatie-pseudo-klasse ‘".active"’.
Bronbestand:http://****/indexwload


anders opgelost
 
Laatst bewerkt door een moderator:
Zit dit wel in de .ready()-functie?

dus
[js]
$(document).ready({
var oldcontent = $('.active').attr('class');
alert(oldcontent);
});
[/js]
 
Is het trouwens niet omslachtig/onnozel om van de class .active de class op te vragen :(

Ik begrijp dat je meerdere classes in een element stopt maar dan kun je gewoon $('.active') gebruiken.

Dit is wellicht efficienter:
[js]
$('.active').removeClass('active content');
[/js]
en anders .toggleClass()?
 
ik ga ze niet remove, ik had het ergens anders voor nodig
 
Dus hier doe je geen "Ik pak de class-waarde van elke .active en daarvan verander ik "active", "content" en spaties in een lege string"?
[js]
$('.active').attr('class').replace('active', '').replace('content', '').replace(' ', '');
[/js]

Als deze code niet bij je probleem hoort heeft het voor ons weinig zin om te reageren natuurlijk :rolleyes:
 
jawel maar de uitkomst daarvan zet ik in een string en niet terug in de html
 
[js]
var class = $('.active').removeClass('active content').attr('class');
[/js]Dan is dit toch nog steeds efficienter? Lees verkeerd

Er moet een manier zijn om het efficienter te kunnen doen.
Is hetgeen dan overblijft uniek op de pagina?

Zo ja, waarom niet opslaan in de ID?
HTML:
<div class="active content" id="home">
Dan kun je gewoon de $('.active').attr('id') op laten vragen :)
 
Laatst bewerkt:
zou niet kunnen ivm veranderende content , maar ik heb nu al een andere oplossing:thumb:
 
Care to share? :rolleyes:
 
?Nu haal ik het uit het url(wat bij nader inzien ook beter was:))

[JS]
oldcontent = window.location.pathname.substr(1);
[/JS]

(het is een hele andere methode geen oplossing daarom had ik het niet gepost omdat het alleen in mijn specifieke geval een oplossing zou bieden )
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan