jquery: добавление [объекта объекта] к строке - PullRequest
0 голосов
/ 27 июня 2011

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 в строку с новой строкой (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 ]

5 голосов
/ 27 июня 2011

Предполагая, что вы хотите text или html Я думаю, вы хотите это

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

или

var str2 = $(this).find("id").html();
1 голос
/ 27 июня 2011

Я полагаю, что как только вы каждый найдете "продукт", вы можете использовать их как объект и просто вызывать что-то вроде $ (this) .id.

$ (xml) .find ("product"). Каждый(function () {

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


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

});

Если вы используете firefox и firebug, поместите объект в console.info (someobject);обычно он выводит объект.

1 голос
/ 27 июня 2011

Ваша переменная str2 является объектом jQuery, а не строкой. Вы ищете атрибут id итерируемого узла XML?

function parseXml(xml)
{
  $(xml).find("product").each(function() {    
    var str1 = "div.timer";
    var str2 = this.id;
    $("div.timer17").html(str1 + str2);
  });
}
1 голос
/ 27 июня 2011

$(this).find("id") возвращает объект, поэтому печатает [object Object]. Это объект jQuery, и его нельзя просто превратить в строку, потому что это должно распечатать?

Если вы хотите текст из узла, попробуйте это:

var str2 = $(this).find("id").html();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...