2016-07-28 2 views
1

У меня есть HTML элемент, как это:Выбор сгенерированный идентификатор с JQuery

<div id="myelement_9082173219731721923"> 

Я хочу, чтобы добавить класс к этому элементу, чтобы выбрать его с помощью CSS. Загружается после другого материала на сайте, потому что он создается внешним javascript. Вот почему я пытался:

$('[id^="myelement_"]').load(function() 
{ 
    alert("im here"); 
    $('[id^="myelement_"]').addClass('myclass'); 
}); 

Но это не распространяется достичь боевой готовности. Что я делаю не так? Спасибо

ответ

1

Это должно сделать работу, load на div элемента никогда не произойдет. Вместо этого используйте прослушиватель изменений DOM. И вам не нужны котировки вокруг селектора id. Это не неправильно, но не обязательно.

$("body").on("DOMSubtreeModified", function() { 
    $('[id^="myelement_"]').addClass('myclass'); 
}); 

Working example.

Вы должны изменить body до самого маленького выбора вашего DOM, где будет проступают div#myelement_. И если это произойдет только один раз, измените on на one. Затем слушатель отключает себя и не будет постоянно работать над изменениями.

+0

Я хочу выполнить функцию, если только этот элемент загружен, а не если другой загружен, потому что только этот элемент загружается после $ (function() – ElDiabolo

+0

Что находится внутри 'div', который может быть загружен? загружаться, видео можно загружать, но чего вы ждете? – eisbehr

+0

Элемент уже не существует, если вы попытаетесь изменить его на $ (function(). Загружается с внешнего javascript. wont work – ElDiabolo

Смежные вопросы