十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
举例说明:$('#foo\\:bar')
创新互联公司是专业的西山网站建设公司,西山接单;提供网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行西山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
jQuery的选择器需要对 : 进行转义, : 需要写成 \:
但是你可以看出 '#foo\:bar' 是一个字符串,那么这个字符串中的所有 \ 都应该被转义,所以 \: 就应该写成 \\:
代码经过javascript的解析器解析后少掉一个,被jquery的解析器解析后又少掉一个。
Html中特殊字符不被转义,可以使用预格式化标签。pre 是 Preformatted text(预格式化文本) 的缩写。使用此标签可以把代码中的空格和换行直接显示到页面上。例如HTML代码:
1
2
3
4
5
pre
if (xx 5) {
print "比5大!\n";
}
/pre
浏览器显示效果:if (xx 5) {print "比5大!\n";}textarea/textarea之间包含有类似的这种转义字符的时候总会被解析,倒是可以把所有的""通过程序替换成"",但是有些本来就是""的也会被转换,这就错了。如何让textarea/textarea之间包含的文本原封不动的显示出来呢?总结如下:解决方法有两种:第1种:
1
2
3
4
5
6
body
textarea id='t' rows=20 cols=20/textarea
script
document.getElementById('t').innerText='a';
/script
/body
第2种:/*将字串转为html格式*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("", "");
s = s.replaceAll("", "");
s = s.replaceAll("", "");
s = s.replaceAll(" ", " ");
// s = s.replaceAll("/n", "");
// s = s.replaceAll("'", "'");
return s;
}
/*将html格式转为字串*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("","");
s = s.replaceAll("","");
s = s.replaceAll("","");
s = s.replaceAll(" "," ");
//s = s.replaceAll("","/n");
//s = s.replaceAll("'","'");
return s;
}
最后一点:jQuery的.html()方法默认会转义的,这种情况使用.text()就不会转义了。
这样即可:
$('.bg-highlight.relative')
也就是把空格去掉再加个小数点
在class中的bg-highlight relative代表两个并列关系的类名,而在选择器中,空格却表示的是上下级关系(空格左边的元素包含空格右边的元素),所以在选择器中就不能再用空格了,应该改用平级关系的表达法(就是把两个类名紧靠在一起,比如 .class1.class2)
当然也可以用楼下的属性选择器,但应该把小数点去掉:
$("[class='bg-highlight relative']")
补充说一下,class="bg-highlight relative" 的引号里的只是两个类名,它们并不是选择器,你不能想当然地把它们直接放到 $('')的引号里,两者不是同一个概念!