Soru Bir öğeye sınıf adı atarken köşeli parantezlerden kaçış


JQuery ile bir sınıf adı ayarlarken kare köşeli karakterden nasıl kurtulacağını bilen var mı?

Takip etmeyi dene:

$('#txtFirstname').addClass('test[someval]')

sonra

$('#txtFirstname').attr('class')

sınıfın orada olduğunu göreceksiniz.

Şimdi dene

$('#txtFirstname').hasClass('test[someval]')

BAŞARISIZ

Düşünebilmemin tek nedeni köşeli parantez.

Ve bunları gördüğünüz jQuery onayına ihtiyacım var.

Herhangi bir öneri takdir

Şerefe Duncan


37
2017-09-23 13:43


Menşei


Bütün cevapları aştığından emin ol. Kabul edilen ve en fazla reddedilen biri yanlış. - Álvaro González


Cevaplar:


Ve, cevap için 12 saat aradı, vazgeçti ve SO üzerine bir soru gönderdi, sonra 2 saniye içinde cevabı buldu.

Daha az şanslı ruhlar için buraya koyacağım.

İKİ (2) ters eğik çizgi ile kaçış.

http://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/


79
2017-09-23 13:47



Tebrikler! - peirix
Bana birçok kez olur. - RichN
İki ters eğik çizgi, yalnızca JavaScript dizgisinden kaçınıyor. Aslında, doğru, jQuery'ye göndereceğiniz tek bir ters eğik çizgi. - bobince
İçin <span id="foo[bar]" /> ile seçebilirsiniz $("#foo\\[bar\\]") tartışıldığı gibi veya $('[id="foo[bar]"]') kullanarak özellik, seçiciye eşittir - Travis Pettijohn
Seçemiyorum (rastgele seçilmiş bir etiket) <select name="foo[bar]"> kullanma $('select[name=foo\\[bar\\]]') Ancak, ben ben bunu kullanarak mümkün $('select[name="foo[bar]"]), ayrıca bakınız: stackoverflow.com/questions/2364982/... - Frank Nocke


Tanımı jQuery API sayfası Bu konuda yukarıdaki açıklamaları verir:

Meta karakterlerden herhangi birini kullanmak için (örneğin,   ! "# $% &" () * +,. / :; <=>? @ [] ^ `{|} ~) bir ismin basit bir parçası olarak   iki ters eğik çizgi ile kaçmak: \\.


8
2018-03-26 17:28



Bu alıntı Seçiciler kategori. Bir sınıf adı bir seçici değildir. İki ters eğik çizgi varsa, sınıf adına sahte bir eğik çizgi eklersiniz: kanıt - Álvaro González


Seçici bir değişkenin içinde bulunuyorsa (veya değişkene alabilirseniz), aşağıdaki kod yararlı olabilir:

selector_name = $this.attr('class');
//e.g selector_name = users[0][first:name]

escaped_selector_name = selector_name.replace(/(:|\.|\[|\])/g,'\\$1');
//e.g escaped_selector_name = users\\[0\\]\\[first\\:name\\]

Kısacası, tüm özel karakterleri çift ters eğik çizgi ile önlüyoruz. İşte jQuery sitesinden bazı ek belgeler:

http://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/


4
2018-05-24 00:50





Ancak burada googles için: Olumsuz skordan korkma, şu ana kadar doğru cevap budur ve bunu desteklemek için yeterli kanıt sağlarım. Sanırım karışıklık geldi çünkü asıl soru başlığı yanıltıcıydı ve çoğu insan gerçekten soruyu okumadı.


-2
2017-09-02 12:43