Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 告诉jQuery对哪个(唯一)div执行操作_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript 告诉jQuery对哪个(唯一)div执行操作

Javascript 告诉jQuery对哪个(唯一)div执行操作,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我的计划是有很多盒子,数量不确定。在框下单击“显示框”时,它会显示该特定框 我的html中有一些独特的div。div的独特性在于: <div id="box-<%=box.id%>"></div> 我显然需要在$box.show中有box id;但我不知道该怎么做 编辑:添加更多信息 <div class="show-box"> <a href="javascript:void(0)">Show</a> </di

我的计划是有很多盒子,数量不确定。在框下单击“显示框”时,它会显示该特定框

我的html中有一些独特的div。div的独特性在于:

<div id="box-<%=box.id%>"></div>
我显然需要在$box.show中有box id;但我不知道该怎么做

编辑:添加更多信息

<div class="show-box">
  <a href="javascript:void(0)">Show</a>
</div>

<div class="box" id="box-<%= box.id  %>"></div>
这门课是做造型的


只是补充一下,我知道javascript链接应该链接到实际的链接。我稍后会解决这个问题。

我不确定是否理解您的问题,但是如果您想显示单击的框:

$('.show-box > a').click(function(){
$(this).parents('.show-box').show();
});

不确定我是否理解您的问题,但如果您想显示单击的框:

$('.show-box > a').click(function(){
$(this).parents('.show-box').show();
});

一个简单的方法是以a ID命名框ID,或者在a中写入另一个属性。例如,如果a标记的ID为anchor1,则将相应的div分配为box-anchor1的ID。然后,像这样引用它:

$('.show-box > a').click(function(){ 
$('#box' + this.attr('id')).show(); 
}); 

一个简单的方法是以a ID命名框ID,或者在a中写入另一个属性。例如,如果a标记的ID为anchor1,则将相应的div分配为box-anchor1的ID。然后,像这样引用它:

$('.show-box > a').click(function(){ 
$('#box' + this.attr('id')).show(); 
}); 
您可以在处理程序中使用它来引用已单击的特定.show box>a

因此,这取决于它与要显示的框元素之间的关系

当您说under时,如果这意味着它是.show-box元素的同级元素,那么您可以从向上遍历,以遍历回box

最终,正确的解决方案取决于实际的HTML标记。如果你在你的问题中提供这一点,那将是有帮助的

如果需要,您可以按ID进行选择,但这通常不是必需的。

您可以在处理程序中使用此选项来引用单击的特定.show box>a

因此,这取决于它与要显示的框元素之间的关系

当您说under时,如果这意味着它是.show-box元素的同级元素,那么您可以从向上遍历,以遍历回box

最终,正确的解决方案取决于实际的HTML标记。如果你在你的问题中提供这一点,那将是有帮助的


如果需要,您可以选择“按ID”,但这通常不是必需的。

如果框和显示它的链接在逻辑上是相关的,您可以使用以下选项跳过整个唯一ID业务:

HTML

另一方面,如果它们在结构上不相关,则可以使用URL的片段部分引用框ID:

HTML


请注意,我们是如何滥用URL的片段部分前面有一个字符的事实,使其成为css ID的

如果框和显示它的链接在逻辑上是相关的,您可以使用以下方法跳过整个唯一ID业务:

HTML

另一方面,如果它们在结构上不相关,则可以使用URL的片段部分引用框ID:

HTML


请注意,我们是如何滥用URL的片段部分前面有一个字符的事实,使其成为css ID的

我认为显示框与需要显示的框不同。如果是,则该元素也将隐藏,您无法单击它:我不认为显示框与需要显示的框相同。如果是,则该元素也将隐藏,您无法单击它:等你回答。我已将我的HTML添加到问题中。盒子不是兄弟姐妹。“Under”是一个错误的词。@GreenRails-我想问题是.show框和相关框的位置之间是否存在一致的关系?啊哈!由于该框位于链接$this.parent.prev.show下面;没用。将上一个更改为下一个修复了它。谢谢你的帮助@绿色铁路-啊,兄弟姐妹,但在另一个方向:很高兴你能成功。谢谢你的回答。我已将我的HTML添加到问题中。盒子不是兄弟姐妹。“Under”是一个错误的词。@GreenRails-我想问题是.show框和相关框的位置之间是否存在一致的关系?啊哈!由于该框位于链接$this.parent.prev.show下面;没用。将上一个更改为下一个修复了它。谢谢你的帮助@绿色铁路-啊,兄弟姐妹,但在另一个方向:很高兴你让它工作了。a没有ID。它只是一个链接,我可以点击一个动作。a没有ID。它只是一个链接,我可以点击一个动作。
<div class="container">
  <div class="box">
    <!-- stuff in the box -->
  </div>
  <a href="#">Show</a>
</div>
$("div.container a").click(function() {
  $(this).prev().show(); // prev() will get the div.box element.
});
<div>
    <div class="box" id="box-1">...</div>
    <div class="box" id="box-2">...</div>
</div>

<div>
    <a class="boxtoggler" href="#box-1">Show Box 1</a>
    <a class="boxtoggler" href="#box-2">Show Box 2</a>
</div>
$("a.boxtoggler").click(function() {
    var boxId = $(this).attr("href");
    $(boxId).show();
});