【问题标题】:jQuery object to string help pleasejQuery对象到字符串请帮助
【发布时间】:2012-08-09 18:32:46
【问题描述】:

我正在创建一个像这样的 jquery 对象:

 htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");

似乎主要是在我这样做时缺少一些元素:

if(data.type == "ListView"){

    htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length +" multiple>");
    i = 0;
    while(i < data.listProps.length){

        htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");
        i++;
    }
    htmlCode.append("</SELECT>");

} 

其中 data 是一个 Json 对象。

当我将其作为字符串执行时,它可以工作。例如 而不是

htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");

我愿意

htmlCode = htmlCode + "<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>";

我想找出缺少的东西,所以我想查看对象 我尝试了以下方法:

alert(JQuery.htmlCode.stringify());

alert(htmlCode.html);

下班。

有什么想法吗??

谢谢。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

要获取 DOM 元素的字符串表示,您可以使用 this other question 中发布的内容。

但是,使用其他答案中提供的方法(console.log 或 Firebug)似乎是更容易的选择,因为它们无需修改代码即可工作。

【讨论】:

  • 这行不通,因为htmlCode 包含 DOM 元素(圆形结构和所有东西......不可能将其表示为 JSON)。
  • 感谢您的提示。我的 Javascript 似乎已经生锈了。我应该把正确的答案留给比我了解更多 Javscript 的人 ;)
【解决方案2】:

你应该使用 Firefox/Firebug 来查看你的对象,浏览它们,改变它们,...

【讨论】:

  • ...或任何带有内置调试器/开发工具的现代浏览器。
  • 虽然建议不错,但这不是问题的答案,应该作为评论发布。
  • 我发布此内容的那一刻,我没有足够的代表发表评论:)
【解决方案3】:

你的第一行代码

htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");

将变量 htmlCode 声明为包含单个 &lt;div&gt; 元素(由传递给函数的 HTML 定义)的 jQuery 对象。

当你打电话时

htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length +" multiple>");

您将一个 &lt;select&gt; 元素(同样,由传递给函数的 HTML 定义)附加到该 &lt;div&gt; 元素的末尾,效果很好。

但是,当你调用

htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");

&lt;option&gt;附加到&lt;div&gt;元素,不是附加到&lt;select&gt;元素,这正是你想要的。

您似乎正在尝试使用 jQuery 对象和 .append() 函数来构建 HTML 字符串,但 这不是 jQuery 所做的。 jQuery 使用实际元素,它只是让您传递 HTML 来创建它们。

【讨论】:

    【解决方案4】:

    尝试类似:

    if(data.type == "ListView"){
       var options;
       htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length    +" multiple></SELECT>");
       i = 0;
       while(i < data.listProps.length){
    
           options+="<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>";
           i++;
       }
       $(htmlCode).find('select').html(options);
    
    } 
    

    这是一个演示Demo

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多