我编写了一个javascript函数,它使用命名div的innerHtml(在脚本之后立即出现)作为输出。问题是,如果我使用$('divname')
,它总是找到第一个实例,而不是最近的实例。什么是原型中最简单的方法来定位最近的“divname”div?
例如(注意,我正在使用Grails,因此使用<g:...>
标签):
<g:each ... >
<tr>
<td colspan = "4">
<g:javascript>
...
$('outputdiv').innerHTML = theoutput;
</g:javascript>
<div id='outputdiv' /> //target THIS instance, not the first!
</td>
</tr>
</g:each>
答案 0 :(得分:1)
编辑:我最初读的是与jQuery有关的问题,但对于Prototype或任何其他库,这个想法应该是相同的。
似乎这就是你想要做的事情:
$('#outputdiv').html(theoutput);
由于ID在文档中必须是唯一的,因此#outputdiv
将是您想要的选择器。如果您使用outputdiv
表示多个ID,则表示您没有使用有效的标记,并且您将获得无法预测的结果。
如果你需要一堆outputdivs,你需要把它变成一个CSS className,并且可能会对jQuery's closest( )
或nextAll( )
或prevAll( )
做一些事情。
另请注意,您的函数将尝试设置尚不存在的元素的innerHTML。您可能希望在关闭元素并在DOM中“准备好”元素之后运行onDOMReady或包含脚本。
// Assuming theoutput is available in this context
$(document).ready(function(){ $('#outputdiv').html(theoutput) });