Я думаю, что предложенный вами способ (подсчет длины) является наиболее эффективным, даже если он включает в себя немного больше кода:
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!