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>");
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>");
});
});
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,我键入了它