jquery:将[object Object]附加到字符串

时间:2011-06-27 18:29:02

标签: javascript jquery string

Jquery似乎无法将 str2 的类型转换为字符串,无论我尝试过什么。

function parseXml(xml)
{
      $(xml).find("product").each(function()
      {

           var str1 = "div.timer";
           var **str2** = $(this).find("id");


           $("div.timer17").html(str1 + str2);
      });
}

每次运行此函数时,div.timer17的内容都会更改为 div.timer [object Object]

我尝试将对象Object转换为带有新String(obj)的字符串,使用json.stringify等。没有任何效果。请帮忙。

我的目标是将str2附加到str1,所以我可以得到想要的选择器(例如,div.timer25)。

这是xml:

<?xml version="1.0" encoding="utf-8" ?>
<products>
<product cookie="The red">
  <timediff>02:28:59</timediff>
  <username>denis</username>
  <price>25</price>
  <id>17</id>
</product>

<product cookie="The red">
  <timediff>00:28:59</timediff>
  <username>denis</username>
  <price>35</price>
  <id>18</id>
</product>
</products>

4 个答案:

答案 0 :(得分:5)

假设你想要texthtml,我想你想要这个

var str2 = $(this).find("id").text();

var str2 = $(this).find("id").html();

答案 1 :(得分:1)

$(this).find("id")返回一个对象,这就是它打印[object Object]的原因。它是一个jQuery对象,它不能只是变成一个字符串,因为应该打印出什么?

如果您想要节点中的文本,请尝试以下操作:

var str2 = $(this).find("id").html();

答案 2 :(得分:1)

你的变量str2是一个jQuery对象,它不是一个字符串。您是否正在寻找正在迭代的XML节点的id属性?

function parseXml(xml)
{
  $(xml).find("product").each(function() {    
    var str1 = "div.timer";
    var str2 = this.id;
    $("div.timer17").html(str1 + str2);
  });
}

答案 3 :(得分:1)

我相信一旦你找到“产品”,你就可以将它们用作对象,只需要调用类似$(this).id。

$(XML).find( “产物”)。每个(()的函数   {

   var str1 = "div.timer";
   var **str2** = $(this).id;


   $("div.timer17").html(str1 + str2);

});

如果您使用firefox和firebug,请将Object放在console.info(someobject)中;它通常会将对象串出来。