在附加之前编辑var中的DOM元素

时间:2013-03-18 17:29:30

标签: javascript jquery dom append

我有一个函数可以将元素附加到使用模板调用它的页面,如下所示:

 var plantillaTemplate = '<div class="contenedor-oferta"><a class="link" href="${enlace}" target="_blank"><!-- Linia superior --><div class="titol">${titulo}</div><!-- Columna esquerra --><div class="left"><div class="foto"> <img class="imatge-oferta" src="${enlaceFoto}"> </div><div class="enlace"><span>Precio alojamiento desde</span><br><span id="test">${precio} $ </span></div></div><!-- Columna dreta --><div class="right"><span>${textoOferta}</span></div></a> </div>';      

    for (var i = 0; i < num_productos; i++) {
        var dataActual = data[i];               
        var valores = { "enlace"        : dataActual['enlace'][idioma],
                        "titulo"        : dataActual['titulo'][idioma],
                        "enlaceFoto"    : dataActual['imagen'][idioma],
                        "precio"        : dataActual['camping'],
                        "textoOferta"   : dataActual['descripcion'][idioma]};           

        var test = $.tmpl(plantillaTemplate, valores).appendTo("#divOfertas");  
    }

我有一个函数参数,说明附加元素部分的可见性,而不是。所以我想做的是访问测试变量中的元素,就像我使用jQuery一样,并禁用它。

有没有办法做到这一点?提前致谢 !!

PD:我知道我可以在追加后做到这一点,但我想先做。

1 个答案:

答案 0 :(得分:0)

$.tmpl调用之后,生成的jQuery对象应该能够支持禁用元素所需的所有常用jQuery方法,即使它们尚未添加到DOM中。例如:

var test = $.tmpl(plantillaTemplate, valores).find('.test').prop('disabled', true).end().appendTo("#divOfertas");

使用.find()方法通过传递常用的选择器字符串来关注特定的元素集。 OP提到“禁用”元素,因此我认为.prop('disabled', true)方法正是您正在寻找的方法。最后,.end()方法确保您将整批HTML附加到文档中,而不仅仅是.find()的结果。