2017-11-04 3 views
0

Ich versuche, das Symbol am Ende eines Absatzes zu ersetzen, wenn ein Ereignis eintritt. Das ursprüngliche Symbol ist eine quadratische Box ☐ und ich verwende sein ASCII im Code.Ändern Sie Symbol in einem Absatz mit jQuery

Eine Probe Ziffer würde Problem No: 1 ☐

Dieses Symbol ist im Inneren ☒

SO letzten Absatz durch das Symbol eines viereckigen Kasten mit einem Quer ersetzt werden würde Problem Nr mag: 1 ☒

die Routine das Endsymbol zu ändern, ist wie folgt:

$(document).on("change", 'input[type=radio]', function (e) { 
    e.preventDefault(); 
    var x = $(this).attr('id'); 
    var y = x.substring(17); 
    var z = $("#QuestionBankLink"+y).text(); 
    var a = z.substring(0,13); 
    var b = a + " ☒"; 
    $("#QuestionBankLink"+y).text(b); 
}); 

Wie man die ID des Absatzes verstehen kann ist QuestionBankLink gefolgt von einer Nummer (im Grunde eine Referenz)

Jetzt ist mein Problem, wenn der Code ausgeführt wird funktioniert alles gut außer der Tatsache, dass anstelle von Symbol am Ende bekomme ich die vollständiger Satz von Zeichen des ASCII. Also was ich bekomme ist:

Problem-Nr .: 1 & # 9746;

Wo liege ich falsch?

Antwort

2

ändern $("#QuestionBankLink"+y).text(b);-$("#QuestionBankLink"+y).html(b);

Die .text() Methode spritzt Text genau so, wie es mit allen Tags in der Zeichenfolge, und alle Einheiten

1

Sie brauchen nicht den Teil bekommen den Charakter und ersetzen zu finden. In Jquery replace Funktion können Sie direkt den Text ersetzen, wie unten angegeben.

$("#QuestionBankLink"+y).text($("#QuestionBankLink"+y).text().replace('☐','☒')); 

Ich habe eine Demo-Snippet

$(document).ready(function() { 
 
    $('#replace').click(function(){ 
 
    $("p").text($("p").text().replace('☐','☒')); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p> 
 
Problem No:1 ☐ 
 
</p> 
 
<button id='replace'> 
 
Replace 
 
</button>

1

Statt " &#9746;" (oder in hexadeciaml " &#x2612;")

Verwendung " ☒" oder " \u2612"

angebracht

&#9746; ist eine dezimale numerische Zeichenentitätsreferenz HTML. Zeichen in HTML sind Unicode Codepoints.

"\u2612" ist ein JavaScript-Escapezeichen literal für eine UTF-16-Code-Einheit. UTF-16 ist eine Zeichenkodierung für den Unicode-Zeichensatz.

"☒" ist ein JavaScript-Literal. Es funktioniert, wenn Ihr Editor, gespeicherte Dateicodierung, optionale HTML-Meta-Zeichensatz-Tag, HTTP-Content-Type-Zeichensatz-Header des Servers alle Zeile auf, zum Beispiel UTF-8-was sollte kein Problem sein.

Natürlich kann ☒ als Unicode-Zeichen auch in HTML verwendet werden.

Verwandte Themen