2012-12-09 54 views
0

我正在关注一个jQuery tutorial,它的代码似乎可以在jQuery 1.4.3下正常工作,但我需要它与jQuery 1.8.3一起工作。jQuery代码不再适用于v1.8.3

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

问题:当我切换的jQuery的版本使用1.8.3版本,class更换className后,显示在Result窗格中没有任何文字的选择框在<div class="selectBox"></div>内。http://jsfiddle.net/auBbz/1/

我错过了什么样的改变:在更改后

的jsfiddle?

+0

更新的小提琴有什么不正确?对我来说,它显示下拉...只有样式/图像不正确 –

+0

我没有看到任何文字里面'

' – Nyxynyx

+0

你的意思只是加载后? –

回答

1

1.4和1.6之间的一个主要变化是attr()方法和prop()方法的引入,用于不属于属性的属性。

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

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

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()方法,它涵盖了这一点。好。还有每个optionselect中选择的都有selected属性,所以我不会在标准存在时使用自定义属性。

相关问题