javascript代码的奇怪问题

javascript代码的奇怪问题,javascript,jquery,encoding,Javascript,Jquery,Encoding,我有一个简单的代码: $(document).ready(function(){ $(".button").click(function(){ var f = $(this).closest('form'); if(f != null){ $(f).append('<div class="loadmask"></div>'); } });

我有一个简单的代码:

$(document).ready(function(){
    $(".button").click(function(){
        var f = $(this).closest('form');
        if(f != null){
            $(f).append('<div class="loadmask"></div>');                        
        }
    });
});
$(文档).ready(函数(){
$(“.button”)。单击(函数(){
var f=$(this.nexist('form');
如果(f!=null){
$(f).附加(“”);
}
});
});
如您所见,我想在父窗体中附加一个类为“loadmask”的div。这里有个奇怪的东西
$(f).append(“”)
已编码为
$(f).追加(";);
并抛出javascript错误

更新:

我已将代码更改为

$(document).ready(function(){           
            $(".button").click(function(){
                $(this).parent('form').append("<div class='loadmask'></div>");
            });
         });
$(文档).ready(函数(){
$(“.button”)。单击(函数(){
$(this.parent('form')。追加(“”);
});
});
仍然获取javascript错误:

SyntaxError: missing ) after argument list
[Break On This Error]   

$(this).parent('form').append("<div class="loadmask"></div>&#34;);
SyntaxError:缺少)在参数列表之后
[在此错误上中断]
$(this.parent('form')。追加(";);
在eclipse控制台上:

00:57:17,593 ERROR [MinifierUtil:108] 22: 65: missing ) after argument list
00:57:17,593 ERROR [MinifierUtil:108] 22: 79: unterminated string literal
00:57:17,593 ERROR [MinifierUtil:108] 1: 0: Compilation produced 2 syntax errors.
00:57:17,593 ERROR [MinifierUtil:74] JavaScript Minifier failed for  


         $(document).ready(function(){          
            $(".button").click(function(){
                $(this).parent('form').append("<div class="loadmask"></div>&#34;);
            });
         });
00:57:17593参数列表后出现错误[MinifierUtil:108]22:65:missing)
00:57:17593错误[MinifierUtil:108]22:79:未终止的字符串文字
00:57:17593错误[MinifierUtil:108]1:0:编译产生了2个语法错误。
00:57:17593错误[MinifierUtil:74]的JavaScript Minifier失败
$(文档).ready(函数(){
$(“.button”)。单击(函数(){
$(this.parent('form')。追加(";);
});
});

我使用eclipse Juno(使用UTF-8的ecoding项目)、liferay 6.1 ga-1和jsf-2.0、icefaces-3……

我无法重现您的问题。我怀疑由于某种原因,JavaScript文件中还有一个额外的字符编码,jQuery将其表示为
&34;
&34
恰好是(
)因此,请确保您的代码中没有额外的内容。请尝试清理JavaScript源文件,然后重试

还要注意,
最近的
从不返回
null
。如果未找到
form
元素,则返回一个空列表(可以通过在无格式页面上运行代码轻松验证)。因此,您可以安全地将代码编写为:

$(document).ready(function(){
    $(".button").click(function(){
        $(this).closest('form').append('<div class="loadmask"></div>');
    });
});
$(文档).ready(函数(){
$(“.button”)。单击(函数(){
$(this).closest('form')。append('');
});
});

请看这把小提琴作为证明:

我无法重现您的问题。我怀疑的是,出于某种原因,JavaScript文件中还有一个额外的字符编码,表示为
"通过jQuery
"
恰好是(
),因此请确保您的代码中没有额外的代码。请尝试清理JavaScript源文件,然后重试

还请注意,
最近的
从不返回
null
。如果未找到
表单
元素,则返回一个空列表(这可以通过在无格式页面上运行代码轻松验证)。因此,您可以安全地编写代码,如下所示:

$(document).ready(function(){
    $(".button").click(function(){
        $(this).closest('form').append('<div class="loadmask"></div>');
    });
});
$(文档).ready(函数(){
$(“.button”)。单击(函数(){
$(this).closest('form')。append('');
});
});

查看此提琴以获取证据:

尝试使用
if(f.length)
,因为
$(this)。最接近('form')
返回一个jQuery对象,该对象的长度要么大于0(form是第一个元素),要么不大于0(length 0的计算结果为
falsy
)。换句话说,
f
永远不为
null
尝试使用
if(f.length)
,因为
$(this.nexist('form')
返回一个jQuery对象,该对象的长度要么大于0(form是第一个元素),要么不小于0(length 0的计算结果为
falsy
)。换句话说,
f
从不为
null
,我真的不知道为什么,但我的xhtml(jsf2.0)似乎无法解码脚本代码中的html字符

(&&运算符上的符号将引发相同的错误)

换衣服

$(this).parent('form').append(“”;
$(this.parent('form').append('div').addClass('loadmask');


对于&,使用child if语句而不是&&将解决它的问题。

我真的不知道为什么,但我的xhtml(jsf2.0)似乎无法解码脚本代码中的html字符

(&&运算符上的符号将引发相同的错误)

换衣服

$(this).parent('form').append(“”;
$(this.parent('form').append('div').addClass('loadmask');


和使用,如果使用一个子if语句,而不是&将解决它的问题。< /P>检查结束引号<代码> <代码>。是否复制粘贴到某处?& 34;翻译为“你得到的JavaScript错误是什么?你可以考虑使用PalthsAs()代替.CouthTyter()。下面是-nestest()测试元素本身,然后在DOM树中向上遍历其祖先的原因;而parents()立即跳过对元素本身的检查,并直接开始计算父元素是否匹配。@jsalonen:SyntaxError:unterminated string literal[Break On This Error]$(f).append('';)@kayen我不使用copy&pass,我键入了itCheck结尾引号

'
。你是从什么地方复制粘贴的吗" 转换为“你得到的JavaScript错误是什么?你可以考虑使用.PARTES()而不是.CouthTyter()。下面是为什么-CouthEffter()对元素本身进行测试,然后通过它的祖先在DOM树中向上遍历;而Prof()立即跳过对元素本身的检查,并直接开始计算父元素是否匹配。@jsalonen:SyntaxError:unterminated string literal[在此错误时中断]$(f)。append('';);@kayen我不使用copy&pass,我键入了它