【问题标题】:jQuery working in JSFiddle but getting an empty array in websitejQuery 在 JSFiddle 中工作,但在网站中得到一个空数组
【发布时间】:2014-07-24 16:12:05
【问题描述】:

让您简要了解我要完成的工作。我有一个动态生成的 HTML。我需要将该 HTML 转换为特定的 JSON 格式。我在 JSFiddle 中有代码。

[link]: http://jsfiddle.net/X3p47/2/

function walk(node, result) {
var pages = jQuery("[data-role='page']");
pages.each(function () {
    var obj = {};
    console.log("Inside");
    obj.text = $(this).attr('id');
    obj.isFolder = true;
    obj.isExpanded = true;
    obj.children = findChild(this);
    result.push(obj);
});
//This is how I am calling the walk function
var a = [];
var testVal = localStorage.getItem( 'htmlValue' );
walk($.parseHTML(testVal), a);
console.log(JSON.stringify(a));

代码运行良好,但问题是当我在我的 jsp 页面中部署 javascript(上面提到的那个)时(我的 jsp 页面的名称是 dataMapping.jsp),它采用的是 dataMapping 的 HTML 而不是我提供的 HTML。如果有人能给我一些意见,将不胜感激。

你看到的部分 var pages = jQuery("[data-role='page']");基本上变成了null,因为它占用了我的页面的html,即dataMapping.jsp

【问题讨论】:

  • 调试从您的开发者控制台开始。有什么错误吗?您是在页面加载后而不是立即在 <head> 中运行此代码吗?
  • 不,没有错误。这不是写在头上的。它在正文中,在 内部
  • 从 JSFiddle 页面可以看出,它没有任何问题...唯一的问题是我上面提到的 walk 函数是从整个页面中获取 HTML。

标签: javascript jquery html jsp


【解决方案1】:

尝试对您的代码进行此修改。而不是 pages.each(function) 试试这个

$each.(node, function(){

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多