Javascript 为什么我在属性列表错误后得到这个丢失的}:(

Javascript 为什么我在属性列表错误后得到这个丢失的}:(,javascript,jquery,Javascript,Jquery,我知道这很简单,但我就是看不见。有人能告诉我为什么在属性列表”之后出现以下代码的错误“缺少}”: <script type="text/javascript"> $(".single_image").live("click", function() { jwplayer().load({ file: 'utubeurl' }); });​ </script> $(“.single_image”).live(“单击”,函数(){ jw

我知道这很简单,但我就是看不见。有人能告诉我为什么在属性列表”之后出现以下代码的错误“
缺少}”:

<script type="text/javascript">

$(".single_image").live("click", function() {
    jwplayer().load({
        file: 'utubeurl'
    });
});​

</script>

$(“.single_image”).live(“单击”,函数(){
jwplayer().load({
文件:“utubeurl”
});
});​
整个代码如下所示:

            $(xml).find('item').each(function(i){
                var current=$(this);
                var ttl=current.find('title:first').text();
                var thum=current.find('thumbnail:first').text();
                var cat=current.find('category:first').text().split(',');
                var desc = current.find('description:first').text();
                var utubeurl = current.find('youtubeurl:first').text();
                var fbshareurl = current.find('facebookshareurl:first').text();
                var twturl = current.find('twitterurl:first').text();
                var nbcurl = current.find('nbcsiteurl:first').text();

                var item = {
                    title:ttl,
                    thumbnail:thum,
                    category:cat,
                    description:desc,
                    youtubeurl:utubeurl,
                    facebookshareurl:fbshareurl,
                    twitterurl:twturl,
                    nbcsiteurl:nbcurl,
                    obj:$('<div class="'+options.itemClass+'"><a id="'+parentId+'" class="single_image" title="'+desc+'"><script type="text/javascript"> $(".single_image").live("click",function(){ jwplayer().load({file:'+utubeurl+'}); }); </script><img src="'+thum+'" /></a><div class="show_lightbox_title"><strong>'+ttl+'</strong></div><ul id="social"><li><iframe src="'+fbshareurl+'" class="iframe_style" scrolling="no" frameborder="0" allowtransparency="true"/></li><li><a class="twtbtn" href="'+twturl+'" target="_blank"><img src="images/twitter_btn.gif"></a></li><a class="nbcbtn" href="'+nbcurl+'" target="_blank"><img src="images/showPages_btn.gif"></a></div>')
                };
                shows.push(item);
            });
$(xml).find('item')。每个(函数(i){
var current=$(此);
var ttl=current.find('title:first').text();
var thum=current.find('thumbnail:first').text();
var cat=current.find('category:first').text().split(',');
var desc=current.find('description:first').text();
var utubeurl=current.find('youtubeurl:first').text();
var fbshareurl=current.find('facebookshareurl:first').text();
var twturl=current.find('twitterurl:first').text();
var nbcurl=current.find('nbcsiteurl:first').text();
变量项={
标题:ttl,
缩略图:嗯,
类别:猫,,
描述:描述,
尤图布尔:尤图布尔,
facebookshareurl:fbshareurl,
twitterurl:twturl,
nbcsiteurl:nbcurl,
对象:$(“”)
};
显示。推送(项目);
});

当我复制并粘贴该代码块时,我看到第二个结尾后面有一个额外的字符})

删除它对我来说在控制台中执行得很好,所以如果这不是错误的来源,我会在页面的其他地方查找


页面是否可公开访问?

尝试将文件属性置于引号下,如下所示:

function () {

'file' : 'utubeurl'

}
--编辑:


我的错,算了吧,我把json、jquery和其他一些j弄糊涂了,你在定义一个属性,不需要把内存槽的名称变成字符串。

通过href传递一个变量,然后将它传递到命令中来播放url,解决了这个问题

var item = {
                    title:ttl,
                    thumbnail:thum,
                    category:cat,
                    description:desc,
                    youtubeurl:utubeurl,
                    facebookshareurl:fbshareurl,
                    twitterurl:twturl,
                    nbcsiteurl:nbcurl,
                    obj:$('<div class="'+options.itemClass+'"><a href="javascript:utubeurlParser(\''+utubeurl+'\')" id="'+parentId+'" class="single_image" title="'+desc+'"><img src="'+thum+'" /></a><div class="show_lightbox_title"><strong>'+ttl+'</strong></div><ul id="social"><li><iframe src="'+fbshareurl+'" class="iframe_style" scrolling="no" frameborder="0" allowtransparency="true"/></li><li><a class="twtbtn" href="'+twturl+'" target="_blank"><img src="images/twitter_btn.gif"></a></li><a class="nbcbtn" href="'+nbcurl+'" target="_blank"><img src="images/showPages_btn.gif"></a></div>')
                };
                shows.push(item);
            });

            setSetter();
        }
    });
}
utubeurlParser = function(url){
              jwplayer().load({file: [url]});}
var项={
标题:ttl,
缩略图:嗯,
类别:猫,,
描述:描述,
尤图布尔:尤图布尔,
facebookshareurl:fbshareurl,
twitterurl:twturl,
nbcsiteurl:nbcurl,
obj:$(“”+ttl+”
  • ) }; 显示。推送(项目); }); setSetter(); } }); } utubeurlParser=函数(url){ jwplayer().load({file:[url]});}
您需要在此处引用您的属性值:

obj:$('<div class="'+options.itemClass+'"><a id="'+parentId+'" class="single_image" title="'+desc+'"><script type="text/javascript"> $(".single_image").live("click",function(){ jwplayer().load({file:'+utubeurl+'}); }); </script><img src="'+thum+'" /></a><div class="show_lightbox_title"><strong>'+ttl+'</strong></div><ul id="social"><li><iframe src="'+fbshareurl+'" class="iframe_style" scrolling="no" frameborder="0" allowtransparency="true"/></li><li><a class="twtbtn" href="'+twturl+'" target="_blank"><img src="images/twitter_btn.gif"></a></li><a class="nbcbtn" href="'+nbcurl+'" target="_blank"><img src="images/showPages_btn.gif"></a></div>')
……需要:

'... jwplayer().load({file:"'+utubeurl+'"}); ...'
…请注意额外的引号。不确定添加这些引号是否会破坏loooong(难以读取/支持)字符串,您可能需要对其进行转义。但你明白了吗


干杯

我看没什么不对的。是这样吗?这个问题上的“xml”标记相关吗?如果我复制您的原始代码,我不会得到任何错误。。。你发布的内容没有问题。更新了描述。为什么投票被否决了?似乎没有问题…但此代码失败的页面是可公开查看的。我可以看到发生错误的页面吗。我这里没有错。啊。。。不要问我,问OP;)Madbreaks明白了,代码片段没有提供足够的上下文。他是对的,url被转储时没有加引号。Giovanni的建议仍然有效,事实上所有json键都应该加引号。所以在标题、缩略图、类别等周围加上引号。看起来这破坏了我的代码,现在它甚至不起作用了。比如说,你有这个吗?变量项={'title':'ttl','thum','category':'cat','description':'desc','youtubeurl':'utubeurl','facebookshareurl':'fbshareurl','twitterurl':'twturl','nbcsiteurl':'nbcurl',@DMoses:如果是JSON,那是真的,但不是。即使是,也需要双引号,而不是单引号le.所以这个建议是无效的。@CliffsofAnashy谢谢你的更正。我知道双引号的事情,只是有点头脑发热。但我不明白ecma/js标准的对象文本语法与JSON标准不同。你让我去查找它,找到对象文本的BNF。:)它添加了一个包含un的容器ique基于xml信息的内容。您是否有其他方法可以在不使用太多代码的情况下创建具有唯一内容的容器?您会怎么做?嗯?出现错误的原因是您的属性值周围缺少必需的引号
utubeurl
。请仔细查看上述代码。
'... jwplayer().load({file:"'+utubeurl+'"}); ...'