Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从jQuery post数据而不是对象中获取原始元素标记_Javascript_Jquery_Html_Json - Fatal编程技术网

Javascript 从jQuery post数据而不是对象中获取原始元素标记

Javascript 从jQuery post数据而不是对象中获取原始元素标记,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我试图从jQuery post数据中获取原始DOM元素,如下所示: .done(function (data) { if (data !== "UsernameError") { StopLoading(); var dbtb = $('<table />').append(data).find('#datatable-responsive').html(); // Convert the table into a javascript object

我试图从jQuery post数据中获取原始DOM元素,如下所示:

.done(function (data) {
  if (data !== "UsernameError") {
    StopLoading();
    var dbtb = $('<table />').append(data).find('#datatable-responsive').html();

    // Convert the table into a javascript object                            
    var table = $(data).find('#datatable-responsive').get(0).tableToJSON(); 
    console.log(table);


    $('#datatable-responsive').dataTable({"bDestroy": true});
    var header = $('<div />').append(data).find('.bs-glyphicons').html();
    $('.bs-glyphicons').html(header);
    $('#tableProducts thead, #header').fadeIn("slow");
    $('#emptyText').hide();
  }
  else {
    StopLoading();
    ShowMessage("No eBay user was found under: " + $('.txtSearch').val());
  }
})
我使用jQuery扩展表到json库将html转换为json,然后将其提取到datatable中。。因为datatable只接受JSON作为数据源,所以我需要以某种方式转换它

当我这样做的时候:

$(data).find('#datatable-responsive').get(0)
$('#tableid').tableToJSON(); <<< correct way
这将返回原始DOM元素(表本身),但table to json只接受实际选择器作为第一个参数,如下所示:

$(data).find('#datatable-responsive').get(0)
$('#tableid').tableToJSON(); <<< correct way
上面这两种方法给了我以下错误:

Error: tableToJSON is not a function
我怎样才能解决这个问题

@拉贾普拉布使用时:

   console.log($(data).find('#datatable-responsive').eq(0));
我得到的是对象而不是本机DOM元素。。。仍然:/

Edit2:这是插件本身的链接:

https://github.com/lightswitch05/table-to-json

你的例子在这里和那里都有一个小细节

console.log($(数据).find(“#数据表响应”).eq(0))
确实会返回jQuery对象,而不是DOM元素,但这正是您所需要的

$(数据).find(“#datatable responsive”).get(0)
和$(data).find(“#datatable responsive”)[0]`都返回DOM元素,但这不是您需要的

它应该是简单的:

var table = $(data).find('#datatable-responsive').tableToJSON(); 
它应该通过返回空白结果或返回表的JSON来处理不匹配

其他选择包括:

var table = $(data).find('#datatable-responsive').eq(0).tableToJSON(); 
var table = $(data).find('#datatable-responsive').first().tableToJSON(); 
几点注意事项
  • .get(0)
    返回jQuery集合中的第一个DOM元素<代码>[0]也会这样做
  • .eq(0)
    返回jQuery集合中的第一个DOM元素,但它被包装在自己的jQuery对象中
  • $(数据)
    只需将加载的内容转换为分离的DOM元素
  • 不要使用ID标识动态加载内容中的元素。使用类确保不存在重复项

$(数据).find(“#datatable responsive”).eq(0).tableToJSON()
@rajaprabhuaravindasami我得到了数组[]jQuery对象“看起来像”数组。也许你没有火柴。无论如何,您都不应该在动态数据中使用ID选择器,因为复制会导致问题。改为使用类(几乎同样快)<代码>$(数据).find(“#datatable responsive”).tableToJSON()将单独对第一个匹配项进行操作,如果没有匹配项,则不执行任何操作。@GONECODE我理解您的意思。。。但是当我做$(data).find(“#datatable responsive”)@JadinStojadin:根据我找到的文档,
tableToJSON
是一个jQuery插件,在这种情况下,它不是一个“原生DOM元素”,而是一个jQuery扩展。请提供一个指向您正在使用的tableToJSON的链接。