定位某个类的最接近的标记,而不是原型中的第一个

时间:2010-06-04 15:26:18

标签: javascript grails prototype

我编写了一个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>

1 个答案:

答案 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) });