Ini tampaknya tidak berfungsi:
X = $td.text();
if (X == ' ') {
X = '';
}
Apakah ada sesuatu tentang spasi non-breaking atau ampersand yang tidak disukai JavaScript?
javascript
jquery
Phillip Senn
sumber
sumber
.text()
menghapus markup, jadi saya tidak percaya Anda akan menemukan
hasil non-markup.Jawaban:
adalah entitas HTML. Saat melakukannya.text()
, semua entitas HTML didekodekan ke nilai karakternya.Daripada membandingkan menggunakan entitas, bandingkan menggunakan karakter mentah yang sebenarnya:
Atau Anda juga dapat membuat karakter dari kode karakter secara manual dalam bentuk pelolosan Javascript:
Informasi lebih lanjut tentang
String.fromCharCode
tersedia di sini:Informasi lebih lanjut tentang kode karakter untuk rangkaian karakter yang berbeda tersedia di sini:
sumber
Ingatlah bahwa
.text()
menghapus markup, jadi saya tidak percaya Anda akan menemukan
hasil non-markup.Dibuat dengan jawaban ....
Menampilkan peringatan, karena ASCII yang setara dengan markup dikembalikan.
sumber
$("<div> </div>").text().charCodeAt()
memberi160
(unicode untuk nbsp)Entitas itu diubah menjadi karakter yang diwakilinya saat browser merender halaman. JS (jQuery) membaca halaman yang dirender, sehingga tidak akan menemukan urutan teks seperti itu. Satu-satunya cara untuk menemukan hal seperti itu adalah jika Anda merupakan entitas pengkodean ganda.
sumber
Dokumen jQuery untuk
text()
kataSaya akan menggunakan
$td.html()
sebagai gantinya.sumber