Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не могу получить значение атрибута (https://javascript.ru/forum/jquery/14924-ne-mogu-poluchit-znachenie-atributa.html)

DenQ 05.02.2011 16:09

Не могу получить значение атрибута
 
Привет, всем!
Пытаюсь, получить значение атрибута дива, но не выходит. Создаю строку, в ней описание на jQuery добавления тега div с атрибутом a=1. Затем, даю на выполнение эту строку, функции setTimeout(). Результат: в DOM`е все создается, все нормально, теги присутствуют, а вот получить значение атрибута не получается.

var str = "$('body').append(\"<div id='1' a='1'></div>\")";
    setTimeout(str, 1);
    var title = $("div#1").attr("a");
    alert(title);

ЗЫ. Пробовал, просто от руки создать в body все это же, и получить значение атрибута средствами jquery, все получилось, а почему мой метод не работает не пойму. Объясните пожалуйста и подскажите решение если не затруднит :)
ЗЫЫ. Почему в виде строки? Да потому, что на самом деле она приходит в виде ответа сервера и ее нужно просто выполнить. Возможно я использую не ту функцию для выполнения. Не знаю. Надеюсь на Вашу помощь или подсказку.

Amphiluke 05.02.2011 16:18

К моменту вызова строки
Цитата:

Сообщение от DenQ
$("div#1").attr("a");

этот див еще не существует в DOM. Легко проверить:
var str = "$('body').append(\"<div id='1' a='1'></div>\")";
setTimeout(str, 1);
alert($("div#1").length);

Установка таймера на 1 мс реально даст вам таймер на миллисекунд 10 или больше. Следующий за таймером код успеет уже выполниться.

И какой вообще смысл здесь в setTimeout?

DenQ 05.02.2011 16:26

Цитата:

Сообщение от Amphiluke
И какой вообще смысл здесь в setTimeout?

Ну предложите тогда пожалуйста, другую функции выполнения строки... Я других не знаю, к сожалению.

Amphiluke 05.02.2011 16:27

eval()

DenQ 05.02.2011 16:33

Amphiluke, большое спасибо... :)

x-yuri 06.02.2011 08:10

Цитата:

Сообщение от Amphiluke
eval()

лечим симптомы, вместо причины, ну-ну...
p.s. не надо передавать javascript через ajax без причины ;)

DenQ 06.02.2011 11:27

x-yuri, я понимаю. Но попробуйте сказать это Дурову к примеру, у него js передается через ajax. И ничего, еще никто не умер. :)

x-yuri 06.02.2011 13:49

(прям дрожу перед авторитетом лучшего молодого предпринимателя 2007 года) и что? Highload - это по определению говнокод там приоритеты другие, качество кода далеко не на первом месте

DenQ 06.02.2011 14:10

x-yuri, а чего ты так разнервничался?
Я выбрал такой метод, потому что сроки маленькие. Ну и опыта соответственно не много, пока что... Так что все нормально.

x-yuri 06.02.2011 14:33

тебе показалось ;)


Часовой пояс GMT +3, время: 00:36.