javascript - 在不刷新查询页面的情况下加载某个 div

标签 javascript jquery jquery-selectors load

我在这里看到过很多次类似的问题,但这次有点不同。 我有一个帖子查询将内容显示为;

<div class="block1">
<a class="button" href="#">Button</a>
<div class="wholiked">content</div>
</div>
<div class="block2">
<a class="button" href="#">Button</a>
<div class="wholiked">content</div>
</div>

我试图在点击 .block1 中的按钮而不刷新页面的情况下重新加载 .block1 中的 .wholiked。 但在这种情况下,所有 block 中的所有 .wholiked 内容都会重新加载,而不是那个特定的内容。

$(function() {
      $('.button').click(function(evt) {
         $('.wholiked').load('index.php .wholiked');
         evt.preventDefault();
      })
    });

如何限制它仅在按钮所在的特定 block 内起作用?

最佳答案

您的选择器“.wholiked”正在加载具有该类的所有元素。假设您想要单击按钮旁边的按钮,请使用:

$(this).next('.wholiked').load('index.php');

如果不能保证同胞关系,则需要以某种方式定义唯一关系。一个例子是在父 div 上使用一个公共(public)父类,如下所示:

<div class="block1 block">
    <a class="button" href="#">Button</a>
    <div class="wholiked">content</div>
</div>
<div class="block2 block">
    <a class="button" href="#">Button</a>
    <div class="wholiked">content</div>
</div>

然后 JS 将是:

$(this).closest('div.block').find('.wholiked').load('index.php');

或者你可以在按钮上放置一个数据属性来定位元素:

<div class="block1">
    <a class="button" data-contentselector="#content1" href="#">Button</a>
    <div id="content1" class="wholiked">content</div>
</div>

JS:

$($(this).data('contentselector')).load('index.php');

关于javascript - 在不刷新查询页面的情况下加载某个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429854/

相关文章:

jQuery 选择器 : select all `li` elements after `li[id="control"]`

jquery-selectors - querySelector 角度分量作为 Component

javascript - 如何在JavaScript中改变window.location.href然后执行更多的JS?

javascript - 如何生成带有转义字符的json字符串

javascript - Angular 指令仅适用于 ng-repeat 的最后一个元素

javascript - 悬停时显示和隐藏表格行,最初隐藏,如果输入则不隐藏

jquery - 在我的 CSS 选择器中使用 jQuery 的选择器 contain & closest 是可能的

javascript - 作为一个整体解析具有 promise 属性的对象的更好方法?

javascript - KnockoutJS - 在表单中使用表中的数据

jquery - 将父级的悬停应用于 jquery ui 自动完成子级