Как можно напечатать значение JSON

#javascript #jquery #json

#javascript #jquery ( jquery ) #json

Вопрос:

Пожалуйста, посмотрите мой полный json здесь: http://jsfiddle.net/D6fTZ / и чего я хочу. как для этого json-кода каждый воссоединяется.повторно включить всплывающую подсказку для каждого name_re? Нравится:

я могу использовать этот новый JSON (если выше JSON не работает для того, что я хочу. как это можно сделать с помощью этого JSON): http://pastebin.com/TvcyjykR

«name_re»: «11» = у пользователя должна быть эта подсказка для него name_re(11)=> 11 11
«name_re»: «11» = у пользователя должна быть эта подсказка для него name_re(11)=> 666666666 99999 777777 1221
» name_re»: «12121112» =всплывающая подсказка для name_re(12121112)=> 55555 00000000 222222222 333333333

Как это можно исправить?

Моя попытка (не работает верно):

 $.each(data.reunits, function (index, value) {
    $('#residence_name').append('<div class="tool_tip"><div class="tooltip"><ul class="li_show"></ul></div><div class="tooltip_hover" style="font-weight: bold; padding: 5px 0 0 0; cursor: pointer;" id="'   value.residence[0].hotel_id   '">'   value.residence[0].name_re   '</div></div>');
    tool_tip();

    $.each(value.reun, function (index2, value2) {
        $('#residence_name .li_show').append('<li>'   value2.name   '</li>');
        tool_tip();
    });

});
 

Комментарии:

1. просто чтобы быть уверенным, вам нужен список резиденций с именами воссоединений в качестве всплывающей подсказки?

2. Более того, видя вашу функцию tool_tip(), вы можете вызвать ее один раз, после обоих $.each . (и, пожалуйста, поместите тег style в css) (и вам не нужно использовать string jsonparse, вы можете использовать прямой объект json напрямую {[like: this]}. но это спорный вопрос для скрипки).

3. @roselan — Можете ли вы привести мне пример скрипки из моего кода?

4. проверьте скрипку внизу моего ответа 😉

Ответ №1:

Вы добавляете каждое значение в li_show . таким образом, он не добавляет только один, он добавляет каждый класс, который использует li_show class. Так что, возможно, вы можете изменить имя класса на uniq-имена или лучше использовать id для каждого значения. Проверьте это http://jsfiddle.net/D6fTZ/2 /

 $.each(data.reunits, function (index, value) {
    $('#residence_name').append('<div class="tool_tip"><div class="tooltip"><ul class="li_show" id="li_show' index '"></ul></div><div class="tooltip_hover" style="font-weight: bold; padding: 5px 0 0 0; cursor: pointer;" id="'   value.residence[0].hotel_id   '">'   value.residence[0].name_re   '</div></div>');

    $.each(value.reun, function (index2, value2) {
        $('#residence_name #li_show' index '').append('<li>'   value2.name   '</li>');

    });
    tool_tip();

});
 

Ответ №2:

вот версия, которая работает:

 $.each(data.reunits, function (index, value) {

    var $object = $('<div class="tool_tip"><div class="tooltip"><ul class="li_show"></ul></div><div class="tooltip_hover" style="font-weight: bold; padding: 5px 0 0 0; cursor: pointer;" id="'   value.residence[0].hotel_id   '">'   value.residence[0].name_re   '</div></div>');

    $.each(value.reun, function (index2, value2) {
        $('.li_show', $object).append('<li>'   value2.name   '</li>');
    });

    $('#residence_name').append($object);

});

tool_tip();
 

проблема, с которой вы сталкиваетесь, заключается в том, что вы делаете второе добавление к ‘#residence .li_show’. это означает, что вы будете добавлять их ко всем на странице, а не к той, которая связана с местом жительства, обрабатываемым в цикле. То, что я делаю, — это переменная, в которую помещаются воссоединения, следовательно, изолируя их от главной страницы и добавляя их один раз.

очистите jsfiddle здесь