У меня есть несколько необычная проблема. Я делал что-то подобное много раз:
$('#selector').css('color','#00f');
Моя проблема в том, что я создаю <div id="selector">
, и я вызываю команду выше, и она отлично работает.
Теперь, в другом случае, позже, я удаляю этот элемент из DOM и снова добавляю его позже с тем же идентификатором. Этот элемент теперь не имеет color:#00f
.
Можно ли добавить правило в CSS, чтобы оно повлияло на элементы, созданные в будущем, с тем же id
/class
? Мне нравится jQuery, но все, что было бы с простым JavaScript, было бы неплохо.
Он должен быть динамическим, и я не знаю, какие классы помещать в файл CSS. Кроме того, я планирую изменить один атрибут несколько раз в течение хода приложения. Например, установите color
на black
, на blue
, на red
и вернитесь к black
.
Я пошел с ответом от @lucassp, и это то, с чем я закончил:
function toggleIcon(elem, classname)
{
if($(elem).attr('src')=='img/checkbox_checked.gif')
{
$(elem).attr('src', 'img/checkbox_unchecked.gif')
//$('.'+classname).hide();//this was the old line that I removed
$('html > head').append($('<style>.'+classname+' { display:none; }</style>'));
}
else
{
$(elem).attr('src', 'img/checkbox_checked.gif')
//$('.'+classname).show();//this was the old line that I removed
$('html > head').append($('<style>.'+classname+' { display:block; }</style>'));
}
}
Я также хочу сказать, что @Nelson, вероятно, самый "правильный", хотя для работы в коде приложения, который всегда хорошо работает, потребуется больше работы, и что не усилия, которые я хочу потратить на данный момент.
Если бы мне пришлось переписать это (или написать что-то подобное) в будущем, я бы посмотрел на detach()
.