stu*_*rtz 0 variables jquery append mako
我希望使用一个i在for循环中递增的变量来在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
Run Code Online (Sandbox Code Playgroud)
运行javascript时希望在html中的结果:
<div id='photos'>
<div id='1'class='thumbnailimage'>
<div id='1container' class='thumb_container'>
Run Code Online (Sandbox Code Playgroud)
等我得到:
<div id='photos'>
<div id='+1+' class...>
</div>
</div><!--end photos-->
Run Code Online (Sandbox Code Playgroud)
有什么建议?
根据以下建议,我将代码更改为
$('#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>");
Run Code Online (Sandbox Code Playgroud)
现在我在参数列表后出现错误消息:SyntaxError:missing)[Break On This Error]
$('#photos').append("<div id="photo+i+" class='thumbnailimage'></div>");
Run Code Online (Sandbox Code Playgroud)
在照片中的箭头上的箭头
最后!!我最终不得不在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
Run Code Online (Sandbox Code Playgroud)
改变这个:
$('#photos').append("<div id='+i+' class='thumbnailimage'></div>");
Run Code Online (Sandbox Code Playgroud)
至:
$('#photos').append("<div id='"+i+"' class='thumbnailimage'></div>");
Run Code Online (Sandbox Code Playgroud)
请注意,如果页面的doctype不是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>");
Run Code Online (Sandbox Code Playgroud)