jQuery: добавьте dom элемент, если он не существует

"но действительно, сколько приложений действительно имеет это много изменений?"

Честно, каждое приложение, я продолжил работать, прошло серьезный рабочий процесс, и/или логика изменяется от понятия пока много позже того, как развертывания. Это - причина номер один программирования "обслуживания"...

действительность - то, что Вы не можете думать обо всем впереди, следовательно причина Гибких процессов. Далее, BA всегда, кажется, пропускают что-то жизненное, пока это не найдено в тестировании.

Механизмы Правила вынуждают Вас к действительно отдельной бизнес-логике от представления и устройства хранения данных. Далее, при использовании правильного механизма, BA может добавить и удалить логику по мере необходимости. Как Chris Marasti-Georg сказал, это возлагает ответственность на BA. Но больше, чем который, это позволяет BA получать точно, что они просят.

21
задан Mark Bell 5 September 2012 в 20:38
поделиться

1 ответ

Я думаю, как вы предложили ( подсчет длины) является наиболее эффективным способом, даже если он включает в себя немного больше кода:

var ins = $("a[@id='iframeUrl']");

if(ins.siblings('#myIframe:first').length == 0)
    ins.parent().prepend('<iframe id="myIframe"  src="'+ins.attr("href")+'"></iframe>');

Кроме того, селектор : first будет здесь избыточным, так как всегда должен быть только один элемент с этим идентификатором, так:

var ins = $("a[@id='iframeUrl']");

if($('#myIframe').length == 0)
    ins.parent().prepend('<iframe id="myIframe"  src="'+ins.attr("href")+'"></iframe>');

также будет работать.

Изменить: как Фидо упоминает в комментариях, проверка длины также может быть сокращена, поэтому кратчайшей формой будет:

var ins = $("a[@id='iframeUrl']");

if(!$('#myIframe').length)
    ins.parent().prepend('<iframe id="myIframe"  src="'+ins.attr("href")+'"></iframe>');

Обратите внимание на восклицательный знак перед селектором в условии if !

33
ответ дан 29 November 2019 в 21:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: