0

抱歉,我仍在学习所有愚蠢的 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;

});

4

1 回答 1

2
$('.edit_project_file').click(function() {
    $(this).parent().next().show();
    return false;
});

假设您的标记将与您的示例一样一致,这应该有效。请记住,您必须向上下降,因为您anchor是 的子项li,那么下一个兄弟姐妹就是li您要显示的。

现场示例:http: //jsbin.com/edovu

仅供参考:我认为你有一个未封闭的 li 标签。

于 2009-10-05T00:32:04.653 回答