这样的情况一般都是你的JSON不完整所致。在获取数据时这样处理一下就好了
10年积累的做网站、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有渭城免费网站建设让你可以放心的选择与我们合作。
$.post(url,data,function(youjson){
youjson=$.parseJSON(youjson);
//然后继续处理你的代码就好了
});
//该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
//其他字符(比如 :;/?:@=+$,#
var tDT_Start =$("#DT_Start").val().replace(/:/g,'|'); //将:替代为|,传到后台再转换回来
var tDT_End =$("#DT_End").val().replace(/:/g,'|');
解析:字符串要匹配正则/:/g,将符合条件的替换为|
C#后台tDT_Start= tDT_Start.Replace("|", ":");
$("a").attr("href","javascript:leftPage.openTab('1000',cur.name,'../biz/html/test/test.html')");
改成这样:
$("a").attr("href","javascript:leftPage.openTab('1000','"+cur.name+"','../biz/html/test/test.html')");
举例说明:$('#foo\\:bar')
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" 的引号里的只是两个类名,它们并不是选择器,你不能想当然地把它们直接放到 $('')的引号里,两者不是同一个概念!