jQuery代码不再适用于v1.8.3

时间:2012-12-09 21:55:35

标签: javascript jquery html css

我正在关注jQuery tutorial,它的代码似乎与jQuery 1.4.3一起使用,但我需要它与jQuery 1.8.3一起使用。

jsfiddle: http://jsfiddle.net/auBbz/

问题:当我将用于版本1.8.3的jQuery版本切换为用className替换class后,Result中显示的选择框}窗格在<div class="selectBox"></div>内没有任何文字。

进行更改后

jsfiddle: http://jsfiddle.net/auBbz/1/

我错过了哪些其他更改?

2 个答案:

答案 0 :(得分:1)

1.4和1.6之间的一个更重大的变化是使用attr()方法和prop()方法的引入,用于不属于真正属性的属性。

selectedIndex将被视为属性而非属性。您的代码正在为undefined返回attr('selectedIndex')。请改用prop('selectedIndex')

DEMO:http://jsfiddle.net/auBbz/3/

答案 1 :(得分:0)

您所关注的教程很糟糕且过时。

删除此条件:

if(i==select.attr('selectedIndex')){
          selectBox.html(option.text());
      }

在循环之前添加以下内容:

selectBox.html(select.find('option:selected').text());

http://jsfiddle.net/oceog/auBbz/2/

该教程很糟糕,因为它在html的非标准属性上使用attr,并且他们知道1.4.2引入了data()方法,它涵盖了这一点。好。同样在option中选择的每个select都有selected属性,所以当存在标准属性时,我不会理解使用自定义属性的原因。