Jquery - 如何从中选择下一个元素?

Posted

技术标签:

【中文标题】Jquery - 如何从中选择下一个元素?【英文标题】:Jquery - How to select the next element from this? 【发布时间】:2012-06-13 17:39:24 【问题描述】:

我正在从数据库中检索 9 个图像缩略图,每个都位于自己的 div 中,如下所示:

<div class="post">

<div class="post_desc"></div>
<div class="post_title"></div>
<a href="#" class="linktopost">**<img src="img/thumb.png" class="thumb-img"/>**</a>
<form>
**<input type="hidden" class="postid" value="'.$post_id.'" />**
</form>

</div>

使用 Jquery,我试图在单击缩略图时发布隐藏输入字段中的值,但我很难正确选择它。输入中的值随 9 个图像中的每一个而变化。

这是我在 Jquery 方面的进展:

$(".thumb-img").click(function()

    $.post("inc/fullpost.php", postid: ##########.val(),
        function(output)
            $("#gotpostid").html(output).show();
        ).fail(function(x,y,z) 
            $("#gotpostid").html(x + "<br />" + y + "<br />" + z)
        );

);

那么如何正确选择与图像缩略图位于同一包含类的输入字段中的值?

【问题讨论】:

是 .cover-img 还是 .thumb-img ? 【参考方案1】:

您可以使用data 代替hidden 元素。删除hidden 元素,然后尝试这样:

标记:

<img src="img/thumb.png" class="thumb-img" data-postid="'.$post_id.'"/>

脚本:

$(".thumb-img").click(function()
    $.post("inc/fullpost.php", postid: $(this).data('postid'),function(output)
            $("#gotpostid").html(output).show();
        ).fail(function(x,y,z) 
            $("#gotpostid").html(x + "<br />" + y + "<br />" + z)
        );
);

【讨论】:

【参考方案2】:

试试这个:

$(".thumb-img").click(function()
    var postId = $(this).closest(".post").find(".postid").val();
    $.post("inc/fullpost.php", postid: postId,
        function(output)
            $("#gotpostid").html(output).show();
        ).fail(function(x,y,z) 
            $("#gotpostid").html(x + "<br />" + y + "<br />" + z)
        );

);

【讨论】:

你知道#gotpostid 是什么吗?next() 在这个问题中的意义何在? 你能详细说明你的问题吗? 虽然与问题无关,#gotpostid 是显示 fullpost.php 输出的 div。我发送 postid 并将与该帖子相关的所有数据发回给我。【参考方案3】:
$(".linktopost").click(
function() var ValueToPost= $(this).next("input").val();

$.post("inc/fullpost.php", postid: ValueToPost,
    function(output)
        $("#gotpostid").attr('type', 'text').val(output);
    ).fail(function(x,y,z) 
        $("#gotpostid").val(x + "<br />" + y + "<br />" + z)
);



);

【讨论】:

【参考方案4】:

试试下面的

$(yourImage).parent().find('.postid').get(0)

【讨论】:

【参考方案5】:

嗯,我不知道你是否意识到,但实际上你所做的不是选择一个值,而是在#gotpostid 元素中设置值。

选择值的方法如下:

$value = $('#gotpostid').val();

如果你正在设置它,那么:

$('#gotpostid').val($value);

【讨论】:

以上是关于Jquery - 如何从中选择下一个元素?的主要内容,如果未能解决你的问题,请参考以下文章

jquery中如何选择选取DOM元素?

jquery如何获取第一个或最后一个子元素

jQuery删除元素内所有链接的类

如何使用 jQuery 选择下一个 div?

jquery怎么选择某个div下的某一个元素

JQuery .next() 没有使用选择器拾取下一个元素