重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1,有如下这样一段html
创新互联是一家专注于网站设计制作、做网站与策划设计,吉首网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:吉首等地区。吉首做网站价格咨询:13518219792
复制代码
代码如下:
div
class="right"id="pending"
table
class="one"width="100%"border="0"cellspacing="0"cellpadding="0"
tbody
/tbody
/table
div
id="pendingpage"class="paging"
/div
/div
2,我用jquery动态填充tbody下的内容代码如下
复制代码
代码如下:
$("#pending
table
tbody").empty().append(th).append(html);
这段代码在ie7及以下ie版本会有问题,jquery无法通过#pending
table
tbody
找到正确的dom位置并append内容。需要修改,修改的代码如下
复制代码
代码如下:
$("table
tbody").empty().append(th).append(html);
把#pending去掉
直接通过table
tbody找dom
3,我一时很疑惑,级联的选择器很常见,但是在ie7下为什么有这种问题,难道是jquery的bug或者div下嵌套table
tbody的html写法不够标准?
下面继续补充一下:
jquery在IE中使用append应注意的问题
$(document).ready(function()
{
$.ajax({
url:
'Cutepage.htm',
dataType:
'json',
data:
'type=InitPageSize='
+
EachPage
+
'PageIndex=1',
success:
function(msg)
{
//在IE7下无法显示,在火狐下没有问题。。。。。
$('#Content').append('trtd
width="19%"
商品编号/tdtd
width="15%"商品名字/tdtd
width="20%"供应商商编号/tdtd
width="30%"商品种类编号/tdtd
width="10%"单价/td/tr');
},
error:
function(x)
{
alert("服务器错误代码:"
+
x.status);
$('#Loading').hide();
}
});
});
修改(如下):
$(document).ready(function()
{
$.ajax({
url:
'Cutepage.htm',
dataType:
'json',
data:
'type=InitPageSize='
+
EachPage
+
'PageIndex=1',
success:
function(msg)
{
//修改后...(这样就没有问题了,可以看出Jquery对html标签是比较敏感的,以后需要注意........)
var
pageContent
=
'';
pageContent
+=
'table
border="2"';
pageContent
+=
'trtd
width="19%"
商品编号/tdtd
width="15%"商品名字/tdtd
width="20%"供应商商编号/tdtd
width="30%"商品种类编号/tdtd
width="10%"单价/td/tr';
pageContent
+=
'/table';
$('#Content').append(pageContent
);
},
error:
function(x)
{
alert("服务器错误代码:"
+
x.status);
$('#Loading').hide();
}
});
});
就是将内容复制给一个参数,不要直接使用html内容。
jQuery的append方法不支持连接等HTML属性的解决
很是郁闷,今天写程序,想在文档对象中append一些html上去,诸如bp这些完全没有问题,可是碰到了带链接的HTML如:
复制代码
代码如下:
$("#test").append("a
href='#'test/a");
firefox毫无问题,IE6、IE7一直到IE8就死活上不去,只显示文本内容,不带任何连接。准备Google一下,却发现Google.com已然无法登陆,Google.cn上查询出来的基本上一页全是采集站的那些垃圾文章,很是郁闷。搞了半天,找到一篇文章,说是jQuery自身append函数的问题,这个函数自己带类似HTML解析和分析的语句,基本的html没问题,碰到链接或者未完全关闭的标签或者是自定义的标签,jQuery就死活认不出来。不知道是否真的如此,手头的js库是压缩版,太晚了头也昏昏沉沉不想再去看劳什子源代码了。直接自己Create一个a标签的元素插入进去好了,这样搞:
复制代码
代码如下:
$(document.createElement(‘a')).attr({"href":"#",
"id":
‘#mylink'}).appendTo("#test");
然后给这个链接附上内容:
复制代码
代码如下:
$(‘#mylink').text("test");
哎,累不累啊。不管了,睡觉了,明天有空看看jQuery的源代码是怎么写的吧。
如果其它浏览器都正常的话,可能就是你的jq版本太高了,实际上这段代码用1.8.3就可以。如果你的版本太高,试试下载低版本的jq。
jquery1.12.0是支持IE7的。
jQuery1.x与2.x版本区别
资料来源:HTML5学堂
html
body
head
meta charset="UTF-8"
script src="js/jquery-1.7.2.js"/script
style
ul.big{width:800px;margin:80px auto;}
ul.big li{line-height:32px;font-size:18px;}
ul.big li.erji{font-size:16px;}
ul.sub{background:#ededed;}
/style
/head
ul class="big"
li子栏目/li
li class="erji"二级子栏目/li
li子栏目/li
li class="erji"二级子栏目/li
li class="erji"二级子栏目/li
li class="erji"二级子栏目/li
li子栏目/li
li class="erji"二级子栏目/li
li class="erji"二级子栏目/li
li子栏目/li
li class="erji"二级子栏目/li
/ul
script
$(document).ready(function(){
$("li").each(function(){
var html = '';
if($(this).hasClass('erji')){
html += $(this).html();
$(this).before('ul class="sub"'+html+'/ul');
$(this).remove();
}
});
});
//再不行就用javascript写
/script
/body
/html