对于我仍在学习的所有愚蠢的jquery问题感到抱歉,并认为这是一个很好的资源!
如何在点击类时显示<li>
这是我的HTML
<li><a href="#" rel="sample.gif">sample.gif</a> <a href="#" class="edit_project_file"> <img src="images/edit.gif"/></a></li>
<li class="edit_project_image" style="display:none;"><input name="upload_project_images[]" type="file" /></li>');
我正在为我的jquery尝试这个(和许多其他组合):
$('.edit_project_file').click(function() {
$(".edit_project_file").next("li.edit_project_image").show();
return false;
我原本以为我需要使用它,但如果我正确理解“this”它会得到当前元素,那么我认为我需要在当前li
之后获取下一个元素。
一如既往,任何帮助都会很棒!
编辑:这里实际使用的是php代码,
$image_project_images_q = mysql_query("SELECT i_project_id,i_name,i_type FROM `project_images` WHERE `i_project_id` = '$project_data[p_id]' AND i_type = '2'");
while($image_project_image_data = mysql_fetch_array($image_project_images_q)){
echo ('<li><a href="#" rel="'.$upload_project_images_path.$image_project_image_data['i_name'].'">'. $image_project_image_data['i_name'].'</a> <a href="#" class="edit_project_file"> <img src="images/edit.gif"/></a></li>');
echo('<li class="edit_project_image"><input name="upload_project_images[]" type="file" /></li>');
}
最终修改:
因为代码是通过php while循环生成的,所以jquery需要
$('.edit_project_file').live('click',function() {
$(this).parent().next().show();
return false;
});
答案 0 :(得分:2)
$('.edit_project_file').click(function() {
$(this).parent().next().show();
return false;
});
假设您的标记与您的示例一致,这应该有效。请记住,由于您所在的anchor
属于li
的孩子,因此必须向下移动,然后下一个兄弟是您要显示的li
。
仅供参考:我认为你有一个未贴现的li标签。