我正在关注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/
我错过了哪些其他更改?
答案 0 :(得分:1)
1.4和1.6之间的一个更重大的变化是使用attr()
方法和prop()
方法的引入,用于不属于真正属性的属性。
selectedIndex
将被视为属性而非属性。您的代码正在为undefined
返回attr('selectedIndex')
。请改用prop('selectedIndex')
答案 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
属性,所以当存在标准属性时,我不会理解使用自定义属性的原因。