日期:2014-05-17  浏览次数:20852 次

求解jquery 1.4.2严重问题
$("body").append("<div style=\"top:expression(documentElement.scrollTop+documentElement.clientHeight);\"></div>");

以上代码,竟然出错。。。
我用的是jquery 1.4.2

------解决方案--------------------
expression里面内容有问题.
$("body").append("<div style=\"top:expression(300);\">sss</div>");

------解决方案--------------------
先别说jq有错,先看看你的代码有没有错,你先把documentElement.scrollTop+documentElement.clientHeight放变量里面,看看有没有问题,然后根据变量来组合成div.
------解决方案--------------------
$("body").append("<div style=\"top:expression("+(documentElement.scrollTop+documentElement.clientHeight)+");\"></div>");

这样看看?
------解决方案--------------------
CSS code
$("body").append("<div style=\"top:expression("+ documentElement.scrollTop+documentElement.clientHeight+ ");\"></div>");

------解决方案--------------------
lz,那不用转义了
JScript code

$("body").append("<div style=‘top:expression(documentElement.scrollTop+documentElement.clientHeight);’></div>");
这个我之前有写过,没问题,ok!

------解决方案--------------------
我昨天告诉你之前,已经试过,直接documentElement.scrollTop不行,找不到这个对象,必须给加上document.documentElement.scrollTop,但还不行,输出了document.documentElement.scrollTop+后面那个,看一下,是0.无论在BODY内加什么内容,始终是0.但如果直接改成0,倒也可以.但这没什么意义.所以告诉你如果是300那样的值就行了.

现在又给你改了一下.原因虽然没时间找官方资料,但可以猜测,在expression里可以用其它一些属性,但好像没法用document.documentElement.scrollTop.否则,也没什么说得过去的解释.

HTML code
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    var v=document.documentElement.scrollTop+document.documentElement.clientHeight;
    $("body").append("<div style=\"position:absolute;background:red;top:expression("+v+");\">dddddd</div>");
    alert("重设一下");
    v=200;
    $("body").append("<div style=\"position:absolute;background:red;top:expression("+v+");\">dddddd</div>");
    }
);
</script>
<body>
ss
<div id="aa">jj</div>
</body>

------解决方案--------------------
你原来的没有position:absolute;表现不一样.第一个按你原来的.第二个我又添加一个有位置移动的.
你下面发的那堆,我没看.你先看了我这个,有问题说明白点,我再看看.
HTML code
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    var v=document.documentElement.scrollTop+document.documentElement.clientHeight;
    $("body").append("<div style=\"background:red;top:expression("+v+");\">dddddd</div>");
    alert("重设一下");
    v=200;
    $("body").append("<div style=\"position:absolute;background:red;top:expression("+v+");\">dddddd</div>");
    }
);
</script>
<body>
ss
<div id="aa">jj</div>
</body>

------解决方案--------------------
expression 这个根本不是W3C的语法,建议弃用
------解决方案--------------------
top:expression(documentElement.scrollTop+documentElement.clientHeight);

JQ不是这么用的,先建立对象,再赋值$.CSS()属性;JQ是跨浏览器的,这种写法如果成立也只支持IE。