在 jQuery 中使用变量代替 ID 名称



我希望使用在 for 循环中递增的变量i在 mako 模板的div 中创建唯一的 id。

var i=0;
    % for p in row.photos: 
    %if not p.PRIVATE:              
    /* setup div's for photo containers*/
    $('#photos').append("<div id='+i+' class='thumbnailimage'></div>"); 
    $('#+i+').append("<div id='+i+container' class='thumb_container'></div>");  
    $('#+i+container').append("<div id='+i+thumb' class='large_thumb'></div>");
    $('#+i+thumb').append("<div class='large_thumb_border'></div>");
    $('#+i+thumb').append("<div class='large_thumb_shine'></div>");
    /*insert the image*/
    $(document.createElement("img")).attr({ "src": "${tg.url('photo/%s/%s' % (p.PHOTOINDEX))}" }).appendTo('#+i+'thumb'');
    i++;

    %endif
% endfor

当 javascript 运行时,希望在 html 中出现的结果:

<div id='photos'>
    <div id='1'class='thumbnailimage'>
        <div id='1container' class='thumb_container'> 

等。相反,我得到:

<div id='photos'>
    <div id='+1+' class...>
    </div>
</div><!--end photos-->        

有什么建议吗?

按照以下建议,我将代码更改为

$('#photos').append("<div id="'photo'+i+" class='thumbnailimage'></div>"); 
$("#'photo'+i+").append("<div id="'container'+i+" class='thumb_container'></div>");  
$("#'container'+i+").append("<div id="'thumb'+i+" class='large_thumb'></div>");
$("#'thumb'+i+").append("<div class='large_thumb_border'></div>");
$("#'thumb'+i+").append("<div class='large_thumb_shine'></div>");

现在我收到一条错误消息:语法错误:参数列表后缺少 )[中断此错误]

$('#photos').append("<div id="photo+i+" class='thumbnailimage'></div>");

照片中 P 上的箭头

最后!!我最终不得不在 jQuery 命令之外定义整个变量,因为它在 jquery href 中的 + 号一直存在问题。 我使用以下代码来获得所需的结果。

    var i=0;
    % for p in row.photos:
     var photo='photo'+i;
     var photoId="#"+photo;
     var container='container'+i;
     var containerId="#"+container;
     var thumb='thumb'+i;
     var thumbId="#"+thumb;
       $('#photos').append("<div id="+photo+" class='thumbnailimage'></div>"); 
       $(photoId).append("<div id="+container+" class='thumb_container'></div>");  
       $(containerId).append("<div id="+thumb+" class='large_thumb'></div>");
       $(thumbId).append("<div class='large_thumb_border'></div>");   
       $(thumbId).append("<div class='large_thumb_shine'></div>");
       $(document.createElement("img")).attr({ "src": "${tg.url('photo/%s/%s' % (row.GISNUM, p.PHOTOINDEX))}" }).prependTo(thumbId);
% endfor

更改以下内容:

$('#photos').append("<div id='+i+' class='thumbnailimage'></div>"); 

自:

$('#photos').append("<div id='"+i+"' class='thumbnailimage'></div>"); 

请注意,如果页面的文档类型不是HTML5,则ID必须以字母开头。


$('#photos').append("<div id='"+i+"' class='thumbnailimage'></div>"); 
$('#'+i).append("<div id='"+i+"container' class='thumb_container'></div>");  
$('#'+i+'container').append("<div id='"+i+"thumb' class='large_thumb'></div>");
$('#'+i+'thumb').append("<div class='large_thumb_border'></div>");
$('#'+i+'thumb').append("<div class='large_thumb_shine'></div>");

相关内容

最新更新