javascript - jQuery onclick 仅更改最近的 div 的 html

标签 javascript jquery html

我需要在同一页面上使用同一代码片段的多个实例。这是一个小型图像库,可根据单击的链接更改 div 中显示的图像。我一切正常,但是当单击要放置在 div 中的图像时,它会使用该类更改页面上的每个 div。我尝试使用 $(this).closest 但这似乎根本不起作用。我很接近吗?

<div class="gallery-carousel">
  <div class="galleryImageChange">
  </div>
</div>
<div class="icon-pager">
  <a href="#" class="imageNav"><img src="/img/logo.png"></a>
  <a href="#" class="imageNav"><img src="/img/logo.png"></a>
  <a href="#" class="imageNav"><img src="/img/logo.png"></a>
</div>

<div class="gallery-carousel">
  <div class="galleryImageChange">
  </div>
</div>
<div class="icon-pager">
  <a href="#" class="imageNav"><img src="/img/logo.png"></a>
  <a href="#" class="imageNav"><img src="/img/logo.png"></a>
  <a href="#" class="imageNav"><img src="/img/logo.png"></a>
</div>

$('a.imageNav').click(function() {
    var $content = $(this).html();
    $(this).closest('div.galleryImageChange').html($content);
    return false;
});

不幸的是,我必须使用此实例的多个实例,并且无法为每个实例使用单独的 ID。这是jsfiddle .

最佳答案

.closest will look for parent element of the current-element, as specified selector is not a parent of the element, nothing will be selected.

使用选择器作为$(this).closest('.icon-pager').prev('div.gallery-carousel').find('div.galleryImageChange')

$('a.imageNav').click(function() {
  var $content = $(this).html();
  $(this).closest('.icon-pager').prev('div.gallery-carousel').find('div.galleryImageChange').html($content);
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="gallery-carousel">
  <div class="galleryImageChange">
  </div>
</div>
<div class="icon-pager">
  <a href="#" class="imageNav">
    <img src="/img/logo.png">
  </a>
  <a href="#" class="imageNav">
    <img src="/img/logo.png">
  </a>
  <a href="#" class="imageNav">
    <img src="/img/logo.png">
  </a>
</div>

<div class="gallery-carousel">
  <div class="galleryImageChange">
  </div>
</div>
<div class="icon-pager">
  <a href="#" class="imageNav">
    <img src="/img/logo.png">
  </a>
  <a href="#" class="imageNav">
    <img src="/img/logo.png">
  </a>
  <a href="#" class="imageNav">
    <img src="/img/logo.png">
  </a>
</div>

关于javascript - jQuery onclick 仅更改最近的 div 的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664603/

相关文章:

javascript - 将 jquery 中的分号替换为换行符

javascript - 根据其他 ID src 更改 ID 的 CSS

html - 无法使用边距 :auto 在父 div 中居中 div

html - CSS 渐变聊天气泡

javascript - 异步 Javascript 回调不触发 RaiseCallBackEvent 函数

javascript - 访问对象内部键的值

php - jquery <pre> 调试崩溃

html - 如何在flutter html中使html图像自动适应屏幕

javascript - HTML 输入类型编号 JavaScript onchange 触发两次?

javascript - 有没有办法让对象过滤器在没有命名引用的情况下传递对象?