我正在尝试定位由jQuery插件生成的div。我一直试图使用 .next 来做这件事,但没有运气。
更新:请注意,点击后会触发此生成的div
* 更新:这是代码http://jsfiddle.net/clintongreen/PAbAH/1/
的小提琴问题是,下一个选择器忽略生成的div并将目标指向下一个div。我知道这不起作用,因为生成的div在技术上不是兄弟。
有没有人知道如何定位这个难以捉摸的生成div。我不能使用css,因为我只想在从某些链接生成它时隐藏它。
代码示例
//Script
$("div.region_marker").next("div.bubble").hide();
//HTML
<div class="region_marker">Region Marker text</div> //this is how I am targeting the generated div
<div class="bubble">Bubble text</div> //div generated by jQuery, not hard coded, this is ignored by .next
<div class="map_marker">Map Marker text</div> //random div, this is the one that .next targets
<div class="map_marker">Map Marker text</div> //random div
我愿意接受你的任何建议,谢谢你们
答案 0 :(得分:1)
如果是小孩,请使用.find()
。如果它是兄弟姐妹和下一个兄弟姐妹,请使用.next()
。如果它是下一个兄弟,而不是下一个兄弟,那么请使用.nextAll()
。
在你的代码中,这将获得由jQuery生成的“Bubble text”div:
$("div.region_marker").next();
这将获得第一个Map Marker文本div:
$("div.region_marker").nextAll(".map_marker").first();
如果你真的想要隐藏第一个.bubble兄弟,那么你可以使用它:
$("div.region_marker").nextAll(".bubble").first().hide();
最后一个工作的唯一原因,而你的代码不会是标签的顺序与你认为不完全相同。
P.S。除非您尝试消除可能具有该类的其他类型的标记,否则不必使用div.bubble
和div.region_marker
等选择器。在您的情况下,您可以使用.region_marker
和.bubble
并保存选择器引擎。
答案 1 :(得分:0)
谢谢我让它使用:
$(“div.region_marker”)。点击(function(){$(this).next(“。bubble”)。hide();});
现在使用click函数同时触发它,传统的方法无效,因为我在div.bubble加载之前运行了这些函数。