Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

Opgelost ID toekennen aan pre element

bewerkt za 14 nov 2015 in Javascript, jQuery etc.. Posts: 879
Ik wil een ID toekennen aan een pre element maar dat schijnt niet zo eenvoudig te zijn:
Een javascript is de waarde van een php string en daarin moet nog een ID komen voor de het pre element:

public function getJs() {
$Class = '';
$UniquepreID = '';
if (c('Plugins.GooglePrettify.LineNumbers')) {
$Class .= ' linenums';
$UniquepreID = uniqid();
}
if ($Language = c('Plugins.GooglePrettify.Language')) {
$Class .= " lang-$Language";
}

$Result = "jQuery(document).ready(function($) {
var pp = false;

$('.Message').livequery(function () {
$('pre').attr('id', $UniquepreID ); // deze regel toevoegen gaat het fout; hij verliest dan zijn classe die hij hieronder krijgt
$('pre', this).addClass('prettyprint$Class');


if (pp)
prettyPrint();
$('pre', this).removeClass('prettyprint')
});

prettyPrint();
pp = true;
});";
return $Result;
}

Reacties

  • Verliest hij die class ook als die hele functie maar ????n keer word aangeroepen?
    Want wat er nu gebeurd is dat er voor elke aanroep van die functie eenzelfde element met hetzelfde id wordt aangemaakt.
    Zo zou het wel moeten werken:

    $Result = "jQuery(document).ready(function($) {
    var pp = false;

    $('.Message').livequery(function () {
    $('pre').attr('id', uniqid() ); //echt uniek maken per aanroep
    $('pre', this).addClass('prettyprint$Class');
    //etc
  • bewerkt zo 15 nov 2015
    PMPosts: 879
    Ik heb het werkend: moet niet pre als element kiezen maar de classenaam:
    De pre heeft al een classe .linenums
    Die classe neem ik nu als element en voeg er het id aan toe

    $('.linenums').attr('id', '$UniquepreID');
    Dit werkt nu goed

    Dit werkt niet:

    $('.linenums').attr('id', 'uniqid()' );
    Deze ook niet:

    $('.linenums').attr('id', uniqid() );
    Deze ook niet:

    $('.linenums').attr('id', $UniquepreID );
    Alleen op deze manier tussen de ' en ':

    $('.linenums').attr('id', '$UniquepreID' );
Login of Registreer om te reageren.