我在这里阅读了一些关于我的问题的帖子,但我不知道如何将其应用到我的代码中,因为我不使用数组或其他对象。
在 Safari 中我收到此错误:
TypeError: undefined is not an object (evaluating '$('#related .expansion').data('handle').replace')
我有一个动态填充选择的函数,如下所示:
function expansieRubberSelect(){
var url = $('#related .expansion').data('handle').replace('.html', '.ajax');
$.getJSON(url, function(data){
var select = '';
$.each(data.variants, function (index, variant) {
select += '<option value="'+variant.id+'" data-size="'+variant.title.replace(/\D/g,'')+'" data-price="'+variant.price.price_excl.toFixed(2)+'" data-priceincl="'+variant.price.price+'">'+variant.title+'</option>'
});
$("#related .expansion select").append(select);
});
}
然后在我的文档中,我这样称呼它:
$(function(){
expansieRubberSelect()
});
我读到,丢失一个对象显然是导致问题的原因。但是我不知道这如何适用于我的代码。
我需要将选择更改为数组或其他内容吗?然后像这样打电话expansieRubberSelect(mySelect)
?
任何帮助表示赞赏!
感谢乌特卡诺斯的回答,我设法让它工作。
这个想法是检查元素是否存在。但是您也可以测试url
存在。
function expansieRubberSelect(){
if($('#related .expansion').length){
var url = $('#related .expansion').data('handle').replace('.html', '.ajax');
$.getJSON(url, function(data){
var select = '';
$.each(data.variants, function (index, variant) {
select += '<option value="'+variant.id+'" data-size="'+variant.title.replace(/\D/g,'')+'" data-price="'+variant.price.price_excl.toFixed(2)+'" data-priceincl="'+variant.price.price+'">'+variant.title+'</option>'
});
$("#related .expansion select").append(select);
});
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)