IE8中的jQuery错误 - .val()或trim()?

时间:2011-05-10 15:38:51

标签: jquery internet-explorer-8

我在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。

2 个答案:

答案 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)。