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>
答案 0 :(得分:5)
假设你想要text
或html
,我想你想要这个
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)中;它通常会将对象串出来。