Muhtemelen böyle bir işleve ihtiyacınız yoktur. Kodunuz zaten tarayıcıda * olduğundan, gerçekte kullanılacak tarayıcı tarafından geriye doğru deşifre edilmesi gereken HTML oluşturmak ve kodlamak yerine DOM'a doğrudan erişebilirsiniz.
innerText
DOM'a düz metin eklemek için, sunulan çıkış işlevlerinden herhangi birini kullanmaktan çok daha hızlı bir özellik kullanın . Statik bir preen kodlu dize atamaktan bile daha hızlıinnerHTML
.
Kullanım classList
düzenleme sınıflarına, dataset
seti için data-
nitelikler vesetAttribute
diğerleri için.
Bunların hepsi sizin için kaçmayı başaracak. Daha kesin olarak, kaçış gerekmez ve DOM'un metinsel temsili HTML üzerinde çalıştığınız için ** altında kodlama yapılmaz.
// use existing element
var author = 'John "Superman" Doe <john@example.com>';
var el = document.getElementById('first');
el.dataset.author = author;
el.textContent = 'Author: '+author;
// or create a new element
var a = document.createElement('a');
a.classList.add('important');
a.href = '/search?q=term+"exact"&n=50';
a.textContent = 'Search for "exact" term';
document.body.appendChild(a);
// actual HTML code
console.log(el.outerHTML);
console.log(a.outerHTML);
.important { color: red; }
<div id="first"></div>
* Bu yanıt, sunucu tarafı JavaScript kullanıcıları (Node.js vb.) İçin değildir. ) İçin değildir.
** Açıkça gerçek HTML'ye dönüştürmediğiniz sürece. Örneğin, erişerek innerHTML
- $('<div/>').text(value).html();
diğer yanıtlarda önerilen çalıştırdığınızda olan şey budur . Dolayısıyla nihai hedefiniz belgeye bazı veriler eklemekse, bunu yaparak işi iki kez yapacaksınız. Ayrıca, elde edilen HTML'de her şeyin kodlanmadığını, yalnızca geçerli olması için gereken minimum değeri görebilirsiniz. Bağlama bağlı olarak yapılır, bu nedenle bu jQuery yöntemi tırnak kodlaması yapmaz ve bu nedenle genel amaçlı bir escaper olarak kullanılmamalıdır. Bir özniteliğin değeri yerine güvenilmeyen veya tırnak işareti içeren veriler içeren bir dize olarak HTML oluştururken tırnaklardan kaçmak gerekir. DOM API'sini kullanırsanız, kaçmayı hiç önemsemeniz gerekmez.