如何在附加脚本的情况下追加div

时间:2015-11-26 08:29:38

标签: javascript jquery html json

所以我有一段代码可以将某些内容添加到网页中,这些元素是从JSON文件(JSONP)调用的。 这是调用JSON文件的代码:

<script>
$(document).ready(function() {
(function($) {
var key= "12345";
var url = 'http://www.example.com/json.php?callback=?&auth=' + key + '';
var that = $(this);
$.ajax({
    type: 'GET',
    url: url,
    async: false,
    jsonpCallback: 'jsonCallback',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function(json) {

        $( "head" ).append(json.csBlock[0].pre);    
        $( "head" ).append(json.csBlock[0].markup); 
        $( "body" ).append(json.csBlock[0].div);
        $( "body" ).append(json.csBlock[0].script);
        $( "body" ).append(json.csBlock[0].frame);
    },
    error: function(e) {
       console.log(e.message);
    }
});

})(jQuery);
});
</script>

事情是......当我使用它时会说:
Uncaught TypeError: Cannot read property 'click' of null
这是因为我打电话给$( "body" ).append(json.csBlock[0].script);。其中包含JSON文件中的以下代码:

"script": "<script>$('.wblongbar').click(function(e) {  if($('.wbiFrame').hasClass('slide-up')) {$('.wbiFrame').addClass('slide-down', 200); $('.wblongbar').addClass('slide-downlongbar', 200); $('.wbiFrame').removeClass('slide-up'); $('.wblongbar').removeClass('slide-uplongbar'); } else {$('.wbiFrame').removeClass('slide-down'); $('.wblongbar').removeClass('slide-downlongbar'); $('.wbiFrame').addClass('slide-up', 200); $('.wblongbar').addClass('slide-uplongbar', 200); }});</script>",

如您所见,我使用的.wblongbar包含在$( "body" ).append(json.csBlock[0].div);

脚本无法“找到”.wblongbar div

那么,如果没有找到.wblongbar,我会以何种方式添加此脚本? 我试图改变代码的顺序但什么也没做。

1 个答案:

答案 0 :(得分:1)

删除脚本中的所有空格或要追加的任何元素。将所有数据附加为单个字符串。