Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FireFox中的jQuery困难&;XHTML_Javascript_Jquery_Firefox_Xhtml - Fatal编程技术网

Javascript FireFox中的jQuery困难&;XHTML

Javascript FireFox中的jQuery困难&;XHTML,javascript,jquery,firefox,xhtml,Javascript,Jquery,Firefox,Xhtml,我最近从HTML转换到了XHTML。。。不要让我开始问“为什么”-让我们说这不是一个选项。无论如何 当我还是HTML时,这个函数在IE和FF中工作得很好,但现在使用XHTML时,我在FF中遇到了以下错误: heightElement is undefined 下面是我定义heightElement的语句 函数revbar(isEFBOutput,ISIXPreview){ 如果(!isIXPPreview)isIXPPreview=false; 变高度元素= $(' ') .prep

我最近从HTML转换到了XHTML。。。不要让我开始问“为什么”-让我们说这不是一个选项。无论如何

当我还是HTML时,这个函数在IE和FF中工作得很好,但现在使用XHTML时,我在FF中遇到了以下错误:

heightElement is undefined
下面是我定义heightElement的语句

函数revbar(isEFBOutput,ISIXPreview){
如果(!isIXPPreview)isIXPPreview=false;
变高度元素=
$(' ')
.prependTo(“正文”)
.get(0);
heightElement.currentHeight=heightElement.offsetHeight;//FireBug说错误在这里。
插入();
window.onresize=刷新;
设定间隔(
函数(){
if(heightElement.currentHeight!=heightElement.offsetHeight){
heightElement.currentHeight=heightElement.offsetHeight;刷新();
}
}, 500);
函数插入(){
var px=“px”;
var color=(document.styleSheets[0].href.match(“ftidStyleDay”)?“黑色”:“白色”;
$revMarks=$('.RevMark').removeClass('RevMark').addClass('UnMarked');
如果(!$revMarks.length)$revMarks=$('.UnMarked');
$revMarks.each(函数(){
$('').css({
“背景色”:颜色,
“宽度”:“2px”,“位置”:“绝对”,
“左”:(isEFBOutput&!ISExpPreview?'.25em':'-.75em'),
“高度”:这是在视线之外,
“顶部”:偏移量(此)+px
}).prependTo(“主体”);
});
}
函数refresh(){$('.RevBar').remove();insert();}
功能偏移(obj){
var-top=0;
if(对象抵销父对象){
做{
top+=对象偏移量;
}而(对象=对象抵销母公司);
}
如果(document.all&(!isEFBOutput | | |(isEFBOutput&&isIXPPreview)))top-=15;
返回顶部;
}
}
你知道为什么这会在FF中的XHTML中抛出错误吗?它在IE中仍然有效


编辑:同样,在我切换到XHTML之前,这段代码在FFIE中工作得非常好。Firefox仍然为XHTML创建DOM,对吗?

我重写了您的一些示例,因为您有错误,并且示例中没有完整的函数调用:

$(document).ready( function(){
    function revBars(isEFBOutput, isIXPPreview){
        var test = "<div id=\"someElement\">whatever</div>";
        $('body').prepend(test).get(0);
        var heightElement = $('#someElement');
        console.log( heightElement);
    }
    revBars();
});
$(文档).ready(函数(){
函数revBars(isEFBOutput、ISIXPreview){
var test=“无论如何”;
$('body').prepend(test).get(0);
var heightElement=$(“#someElement”);
控制台日志(高度元素);
}
revbar();
});
此时heigthement存在,div被添加到DOM中。 请提供正确的问题以便解决它们

更新

//var heightElement = $('<div id="resizeDetectingElement">whatever</div>').prependTo('body').get(0); 
// this statement doesn't work
var heightElement = $('body').prepend('<div id="resizeDetectingElement">whatever</div>'); 
// this does
console.log(heightElement);
//var heightElement=$('whatever').prependTo('body').get(0);
//这种说法行不通
var heightElement=$('body')。prepend('whatever');
//确实如此
控制台日志(高度元素);
这与第一个示例基本相同

您提出的请求是在元素主体之前添加一个div,然后获取主体的第一个元素。已返回匹配的项,因此get是i相关的。在主体之前附加一个元素,因此变量为空是正常的

试试我的代码,删除否决票,因为没有多少人对你的超级代码有这样的耐心

更新2 这是prepend()和prependTo()的用法示例


$(文档).ready(函数(){
$(“测试A”)。前置('B');
美元(“#test#u C”)。prependTo($(“#test#u A”);
var x=$('D').prependTo('body').get(0);
console.log(x);//返回div
$(x).append('some text');//有效
});
A.
C

我希望这将有助于使您的代码正常工作。使用$(heightElement)而不仅仅是heightElement,它是div而不是jQuery对象。

我没有错误。您什么时候调用此函数?您没有试图在该作用域/函数之外使用heightElement,是吗?在哪里生成错误?您是否试图在heightElement所在的范围之外使用它?如果这是一个范围问题,那么它与使用xhtml无关——您是否同时进行了其他更改?我们是否可以看到“(更多内容…?)?@J-P:ask and ye将被我糟糕的代码淹没。;-)您错误地认为我希望函数在$(document).ready上运行。您的
.get(0)
没有任何作用-它从未被分配给变量或被操纵<代码>$(“正文”)。前置(测试)做同样的事情。您是否可以比
更具体一些您有错误
?哪里什么错误?我正在努力解决这个问题,“你有错误”并没有什么帮助<代码>请提供正确的问题?什么是不正确的?我正在寻求帮助,并尽我所能表达我的问题。希望我能编辑评论-我没有意识到
在评论中不起作用。Mea Culpa Maxima@ScottSEA您的函数没有结束,具有未使用的参数,并且您的示例正在使用对未定义函数的调用。也许IE没有设置为向您显示javascript错误,但您发布的代码至少有一些错误。@Elzo Valugi:cool。我已经发布了整个函数(以及嵌套函数)。如果您能特别指出我的代码中的任何错误,我将不胜感激。@ScottSEA my IDE说您在插入函数之前、第一个函数体之后缺少一个括号
//var heightElement = $('<div id="resizeDetectingElement">whatever</div>').prependTo('body').get(0); 
// this statement doesn't work
var heightElement = $('body').prepend('<div id="resizeDetectingElement">whatever</div>'); 
// this does
console.log(heightElement);
<html>
<head>
    <script type="text/javascript" src="../lib/jquery/jquery-1.3.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready( function(){
        $("#test_A").prepend('<div id=\'test_B\'>B</div>');
        $("#test_C").prependTo( $('#test_A'));
        var x = $('<div id="resizeDetectingElement">D</div>').prependTo('body').get(0);
        console.log( x ); // returns the div
        $(x).append('some text'); //works
    });
</script>
</head>
<body>
<div id='test_A'>A</div>
<div id='test_C'>C</div>
</body>
</html>