-4

我有这个在 Chrome 和 Firefox 中运行良好的功能,但由于某种原因,它在 IE 中根本不起作用。

错误消息是'无法获取未定义或空引用的属性'标题''

我相信它没有注册结果,但不知道为什么这只是 IE 的问题。

function create_the_list_item(r){
            var title = $('<h3 />',{'class':'title'}).html('<span class="icon-location location">'+r.title+(r.miles?(' <span style="font-size:75%">('+r.miles+' miles away)</span> '):'' )+' </span>')
            var add = $('<div />',{'class':'address left'}).html(
                '<p>'+(r.address_line_1+'<br/> ' ) + 
                (r.address_line_2?(r.address_line_2+'<br/> '):'' ) +
                (r.county?(r.county + '<br/> '):'') +
                (r.country?r.country + '<br/> ' :'') +
                (r.post_code?r.post_code :'')+'</p>'
            );
            var website = $('<div />',{'class':'right'}).html(
                (r.website?('<a href="http://'+r.website.replace('http://','')+'" target="_blank">Visit Website</a><br/><br/>' ):'')+
                (r.website?(r.telephone_number ):'')
            )
            return ($('<div />',{'class': 'the_shop_list clearfix'})
                .data('longitude',r.longitude)
                .data('latitude',r.latitude)
                .data('title',r.title)
                .data('tel',r.telephone_number)
                .data('website',r.website)
                .append(title).append(add).append(website)
                )
        }
4

2 回答 2

0

根据您给我们的内容,错误“无法获取未定义或空引用的属性“标题”可能是指您尝试传递的对象“r”。设置 'title' 变量时,对 'r' 的第一个引用是 r.title。

'r' 没有像您期望的那样被定义、创建或传递给 *create_the_list_item*。

他们使用它的方式应该如下所示:

r = { title : 'my title', 
      county: 'my county'}
于 2013-04-30T15:40:21.013 回答
0

这意味着您的r对象可能是空的,因此请追溯您的代码并console.log()查看发生了什么。

如果你试试:

function create_the_list_item(r){
   console.log(r)
   var title = $('<h3 />',{'class':'title'}).html('<span class="icon-location location">'+r.title+(r.miles?(' <span style="font-size:75%">('+r.miles+' miles away)</span> '):'' )+' </span>')
 ......
}

它会说类似 undefined 或 null 的内容:

因此,这可能是您传递对象或任何关键字冲突或类似性质的方式的方式。

于 2013-04-30T15:41:54.383 回答