0

我正在关注 jQuery教程,它的代码似乎适用于 jQuery 1.4.3,但我需要它才能适用于 jQuery 1.8.3。

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

问题:当我将使用的jQuery版本切换到1.8.3版本后,用 替换后className,窗格中class显示的选择Result框里面没有任何文本<div class="selectBox"></div>

做出改变后的jsfiddle:http: //jsfiddle.net/auBbz/1/

我错过了哪些其他变化?

4

2 回答 2

1

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

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

演示:http: //jsfiddle.net/auBbz/3/

于 2012-12-09T22:06:07.273 回答
0

您正在遵循的教程很糟糕且已过时。

删除此条件:

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

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

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

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

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

于 2012-12-09T22:06:25.570 回答