现在,自定义小部件中显示的是JavaScript输出

时间:2019-01-04 作者:Kevin Davis

我对为自定义小部件创建的Javascript有问题。

代码如下:

    var wrapper = $(\'#wrapper\'), container;

    $.ajax({
    method: "POST",
    url: "https://api.graphcms.com/simple/v1/SampleAPI",
    contentType: "application/json",
    headers: {
    Authorization: "bearer ******"
  },
 data: JSON.stringify({
    query: "query  { allProducts { id title } }"
  })
}).done(function(data) {

for( var key in data ) {

     for (var i = 0; i<data[key].allProducts.length; i++)
     {
         console.log(data[key].allProducts[i]);
         container = $(\'<div id="data" class="container"></div>\');
         wrapper.appendTo(container);
         container.appendTo(\'<input type=checkbox name="id" value=\' + data[key].allProducts[i].id + \'>\' + data[key].allProducts[i].title  );             
     }   

}

});
下面是我在函数中调用Jquery的方式。模板的php文件:

  function jquery_import() {

          wp_deregister_script(\'jquery\');
          wp_register_script(\'jquery\',https://ajax.googleapis.com/ajax/libs/3.3.1/jquery.min.js\', array(), \'3.3.1\', true);  
           wp_enqueue_script(\'jquery\');

     }
     add_action( \'wp_enqueue_scripts\', \'jquery_import\' );
下面是我调用自定义javascript文件的方式:

     function custom_wp_enqueue_scripts() {

        wp_register_script( \'custom\', get_template_directory_uri() . \'/assets/js/custom.js\', array( \'jquery\' ), NULL, false );
         wp_enqueue_script( \'custom\' );

       }    
      add_action(\'wp_enqueue_scripts\', \'custom_wp_enqueue_scripts\');
最后,在我的小部件中,有以下div语句:

      <div id="wrapper"> </div>
基于我的javascript,数据正在传入,但是,信息不会显示在我的小部件中。为什么它没有显示在我的小部件中?

谢谢你,凯文·戴维斯

1 个回复
SO网友:RiddleMeThis

尝试更改。。。

var wrapper = $(\'#wrapper\'), container;
只是。。。

var wrapper = $(\'#wrapper\');
然后在容器前面添加var

var container = $(\'<div id="data" class="container"></div>\');