実際には機能しないこのコードがあります
最初に img div を追加します
$('div.group_title a').prepend("<img src='replace_w_img_link_in_real' width='20' height='20' >");
次に、そのdivを選択します
$('.el.group_title a img').on('click', function(e){
e.preventDefault();
var img2 = "img_link_path_2";
var img1 = "img_link_path_1";
var img = $(this).attr("src");
if (img == img1) {
$(this).attr("src",img2);
} else {
$(this).attr("src",img1);
}
$(this).nextUntil('.el.group_title', '.sidebar_project').toggle();
});
ここでの問題は$('.el.group_title a img')
、選択を返すだけで$(this).nextUntil('.el.group_title', '.sidebar_project').toggle();
、そうするとdivが見つからないことです。
つまり、img div を追加し、その img をクリックすると、img が変化し.sidebar_project
、次の img までコンテンツを非表示/表示するという考え方です。変更しようとしまし$(this).nextUntil('.el.group_title a img'
たが、うまくいきませんでした
リクエストに応じて、これはベース html です
<div class="el group_title">
<a href="link_path">NAME</a>
</div>
<div data-project-id="195677" class="sidebar_project">..</div>
<div data-project-id="9844" class="sidebar_project">..</div>
<div class="el group_title">
<a href="link_path">NAME 2</a>
</div>
<div data-project-id="195677" class="sidebar_project">..</div>
<div data-project-id="9844" class="sidebar_project">..</div>
img divを追加すると
<div class="el group_title">
<a href="link">
<img alt="ACME org" src="link" width="20" height="20">org name</a>
</div>
....
これがjsFiddleです-> http://jsfiddle.net/6fdMc/