2010-08-11 14 views
8

alıntı kaçan daha jQuery (HTML etiketi özellik tanımları gibi) 'ın" sahip dizeleri bitiştirmek için daha iyi bir yolu var mıjQuery - teklifleri olan dizeleri birleştirmenin daha iyi yolu?

Escapy Örnek:?

$(this).prepend("<label for=\""+$(this).attr("id")+"\">"+"a"+"</label>");

+0

HTML etiket öznitelik tanımları için tek tırnak kullanın? – Adam

+0

hum jQuery muhtemelen bu tür dizeleri işlemek için bir işlev olabilir eğer merak ediyorum: – ina

+1

Kayıt için: '$ (this) .attr (" id ")' 'this.id' diyerek şişirilmiş ve gereksiz bir yoludur. – Tomalak

cevap

10

oluşturmadan ($(html, props)) nesnesi yöntemini kullanabilirsiniz, örneğin:

$('<label />', { for: this.id, text: 'a' }).prependTo(this); 
//or: 
$(this).prepend($('<label />', { for: this.id, text: 'a' })); 

Bu, dahili olarak .text() arayarak bakımı avantajı vardır herhangi bir kodlama sorunları. Ayrıca, bu bir lot yapıyorsanız, HTML parçası tutarlı ve önbelleğe alındığından daha hızlı olacaktır, bu nedenle her zaman bir belge parçasına bir dize dönüştürmek yerine düğümün bir klonu kullanılır. Oluşturduğunuz bu gibi daha fazla öğe, daha hızlı olan string yönteminin üzerindedir. Aynı önbellekleme nedenlerinden ötürü, daha büyük olan eleman (512 karakterlik bir dizeye kadar) kazanımları büyülemektedir.

+1

+1 Güzel bir alternatif ne zaman kullanılacağını hala emin değilim. – user113716

+0

çok daha fazla okunabilir jQuery dahili parça için –

+0

+1 önbellekleme – jmar777

6

Tekli kullanabilirsiniz ana dize tırnak ve sonra çift tırnak kaçmak yok.

$(this).prepend('<label for="'+$(this).attr("id")+'">'+ a +'</label>'); 
1

tek tırnak?

$(this).prepend('<label for="'+$(this).attr("id")+'">'+'a'+'</label>'); 

ya, jQuery:

$("<label>").attr("for", this.id).text(a).prependTo(this); 
5

Bu nedenle, öncelikle tek tırnak işaretleri $('here') kullanıyorum. HTML ile çalışırken, kaçınılmaz olarak çift tırnak ile dolu olduğunda endişelenmeniz daha az.

$('""""No worries!"""""""') 

Google JavaScript Style Guide kabul eder.

+0

"Ben Franklin'in uçurtma" gibi sözcüklerle html varsa ne olacak? – ina

+1

Peki, o zaman kaçmak için geri döndün. Hiçbir şey mükemmel değil, değil mi? En yaygın örneği daha kolay hale getirmek için kod yazabiliriz. –

+0

veya PHP ile ne zaman yankılanmalı? –

1

Tek tırnaklar kesinlikle gitmek için yol vardır. Javascript'teki tüm dizeler için bunları kullanmanızı öneririz. Özellikle jQuery ile çalışırken, tek bir alıntıdan bir dizge içinde bir çift tırnak işareti kullanmanız çok daha yaygındır, bu yüzden size kaçmak ve okunabilirliği artırmak için çok zaman kazandıracaktır. Ayrıca, size tuş vuruşlarını kaydedecek, artık sinir bozucu vardiya anahtarı yok :)

İlgili konular