我盯着这个显然无法正常工作的小段代码太久了。为什么没有选择box rel属性得到警报?
HTML:
<select rel="prop216" name="prop[]">
<option value="">- none</option>
<option value="12">Opt 1</option>
<option value="13">Opt 2</option>
</select>
<select rel="prop217" name="prop[]">
<option value="">- none</option>
<option value="12">Opt 1</option>
<option value="13">Opt 2</option>
</select>
jQuery的:
$("select").change(function()
{
var i = 0;
var alteredSelects = [];
$("select").each(function()
{
if ( $(this).val() !== "" )
{
alteredSelects[i][0] = $(this).attr('rel');
alteredSelects[i][1] = $(this).val();
alert ($(this).attr('rel'));
i++;
}
});
});
另请参阅我的jSfiddle:http://jsfiddle.net/ft6Bd/1/
我在Firefox中收到错误
在
alteredSelects[i][0] = $(this).attr('rel');
上但似乎无法意识到原因。
最佳答案
您首先必须初始化alteredSelects[i]
,然后才能为其分配值:
$("select").change(function() {
var i = 0;
var alteredSelects = [];
$("select").each(function() {
if ( $(this).val() !== "" ) {
alteredSelects[i] = []; // <-- Initialize `alteredSelects[i]` as empty array.
alteredSelects[i][0] = $(this).attr('rel');
alteredSelects[i][1] = $(this).val();
alert($(this).attr('rel'));
i++;
}
});
});
问题是您试图将某些内容保存到
alteredSelects[i]
中,而alteredSelects[i]
是null
。