Meddelande

Minska
No announcement yet.

jQuery each och replaceWith?

Minska
X
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • jQuery each och replaceWith?

    Denna funkar bra
    Kod:
    var txt = $("h2").html();
    var svgText = createSVGtext(txt, 500, 100);
    $("h2").replaceWith( '<svg id="txt" width="100%" height="100%" viewBox="0 0 1000 200"></svg>');
    $('#txt').append(svgText);
    Men så fort jag gör en loop av det hela verkar det inte funka.
    Kod:
     $('h2').each(function() {
      var $this = $(this);
      var txt = $this.text();
      var svgText = createSVGtext(txt, 500, 50);
      $($this).replaceWith('<svg width="100%" height="100%" viewBox="0 0 1000 200">' + svgText.innerHTML + '</svg>');
    });
    Har jag missat något?
    Vänligen Jesper
    Etisk kommunikation

  • #2
    ser ut att det borde fungera, det du kan göra är att ta bort $() runt $this för det är ju redan ett jQuery objekt.

    [kod] $('h2').each(function() {
    var $this = $(this);
    var txt = $this.text();
    //var svgText = createSVGtext(txt, 500, 50);
    $this.replaceWith('<b>' + txt + '</b>');
    });[/kod] fungera med som exempelvis, men jag gissar på att svgText är en SVG objekt och inte text.
    vad gör createSVGtext?

    fungera: [kod]$('h2').each(function() {
    var $this = $(this);
    var txt = $this.text();
    var svgText = createSVGtext(txt, 500, 50);
    var svg = $('<svg width="100%" height="100%" viewBox="0 0 1000 200"/>').append(svgText);
    $this.replaceWith(svg);
    });[/kod] bättre?
    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

    Kommentera


    • #3
      Yes!
      funktionen createSVGtext splittar upp SVG-text i flera tspan-element. Då SVG 1.1-text inte fattar textstycken.
      1000 tack!
      Vänligen Jesper
      Etisk kommunikation

      Kommentera

      Working...
      X