这是我第一次在 Safari 中尝试 JSFiddle。JSFiddle 在 Safari 4 中无法正常工作是否有一些愚蠢的原因?确实有人报告说 Safari 5 运行良好。那么我在这里错过了什么?
JavaScript:
$(document).ready(function(){
$("#productSize").change(function(){
var me = $(this);
var avail = me.find("option:selected").html().split("-")[1].trim();
$("#quantity option").each(function() {
$(this).remove();
});
for(var i=1; i<= avail; i++) {
$("#quantity").append("<option>"+i+"</option>");
}
});
});
HTML:
<label>Sizes
<select name="item_options[product_size]" id="productSize">
<option value="s">small - 10</option>
<option value="m">medium - 1</option>
<option value="l">large - 5</option>
<option value="xl">extra large - 10</option>
</select>
</label>
<label>Quantity
<select name="quantity" id="quantity">
</select>
</label>
JSFiddle 演示问题:jsfiddle
更新: 我在所有其他浏览器中尝试这个,在所有浏览器中发现不同的行为。这正是它在 Firefox 中应该做的。没问题。IE 似乎不喜欢我调用 trim() 的方式,所以我更改了 JSFiddle 以适应它。
$(document).ready(function(){
$("#productSize").change(function(){
var me = $(this);
var myText = me.find("option:selected").text().split("-")[1];
var avail = parseInt($.trim(myText), 10);
$("#quantity option").remove();
for(var i=1; i<= avail; i++) {
$("#quantity").append("<option value='"+i+"'>"+i+"</option>");
}
});
});
更新的 JSFiddle这已经过测试并且可以在 IE、FF、Chrome 中运行,但我仍然什么也没得到,$(document).ready 和 .change() 甚至在 Safari 4 中都没有执行。
更新 #2 只是为了进一步澄清,这个 Jquery 代码不在 JSFiddle/safari 4.0.5 中运行。我什至没有收到警报,所以 .change() 没有运行......
$(document).ready(function(){
$("#productSize").change(function(){
alert("Hello World");
});
});