我在IE8调试器中遇到jquery错误,但我不确定是哪个函数导致它。我在这里看到了很多帖子,说明IE8不支持native trim(),但我不是(我不认为)使用本机版本(我继承了这段代码;它不是我写的东西从头开始。)
这是造成问题的块 - 它是点击功能的一部分:
greenlight = false;
link = $(this);
href = $(this).attr("href");
row = $(this).parent().parent();
if ($(":text", row).exists()) {
new_email = jQuery.trim($(":text", row).val());
//do stuff here
}
我在调试器中遇到的错误是在启动new_email的行上;错误是“对象不支持此属性或方法。”
任何人都可以帮我弄清楚1)IE8不支持哪种属性或方法,2)我能做些什么来解决它?我绝不是一个jquery专家;我是99%的服务器端。
该代码适用于Chrome,Safari和Firefox。
答案 0 :(得分:11)
更新: 由于新的信息,我认为你遇到了IE的问题,当你有一个变量和一个ID相同的元素时,它会产生冲突,这将导致冲突和混淆错误信息有关功能无法解决。有关更详细的说明,请参阅此参考。 http://www.karlstanley.net/blog/?p=5
原始答案: 如果您在调试单个复杂行时遇到问题,请将其拆分为多个部分,
var tempValue = $(":text", row).val();
new_email = jQuery.trim(tempValue);
答案 1 :(得分:2)
变化:
$(":text", row).exists()
要:
$(":text", row).length > 0
据我所知,jQuery库中没有exists()
函数(tried searching the API reference)。