JQuery版本与Div搜索效果冲突

JQuery Version Conflict with Div Search Effect

本文关键字:冲突 搜索 Div 版本 JQuery      更新时间:2023-09-26

$(document).ready(function() {
  $(".form-select.pais").change(function() {
    var val = $(this).val();
    if (val != 'Any') {
      $("div.views-row, div.[class^='views-field-field-bank-office-pais-value-']").hide();
      $("div.views-row, div.views-field-field-bank-office-pais-value-" + val).show();
    } else {
      $("div.views-row, div.[class^='views-field-field-bank-office-pais-value-']").show();
    }
  });
});
div {
  background-color: #ddf;
  margin: 2px 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div class="test">
  <p>
    Here is a text test!
  </p>
</div>
<select id="json-one" class="form-select pais">
  <option value="Any">Any</option>
  <option value="USA">USA</option>
  <option value="Chile">Chile</option>
  <option value="Spain">Spain</option>
</select>
<div class="views-row">
  <div class="views-field-field-bank-office-pais-value-USA">
    <span class="field-content">this is div USA</span>
  </div>
  <div class="views-field-field-bank-office-pais-value-Chile">
    <span class="field-content">this is div Chile</span>
  </div>
  <div class="views-field-field-bank-office-pais-value-Spain">
    <span class="field-content">this is div Spain</span>
  </div>
</div>

你好,

我叉了一把有滑动效果的小提琴,并根据下拉框的选择调整了链接的隐藏和显示位置。我的问题是隐藏页面上的所有div。例如,类为"test"的div不应该隐藏,但它正在发生。这并不是我想要的效果。(此问题已修复)

谢谢。

这是代码:

$(document).ready(function() {
  $('select').change(function() {
    var val = $(this).val();
    if (val != 'Any') {
      $('div:not(div.views-row, div.views-field-field-bank-office-pais-value-' + val + ')').hide();
      $("div.views-row, div.views-field-field-bank-office-pais-value-" + val).show();
    } else {
      $("div.views-row, div").show();
    }
  });
});
div {
  background-color: #ddf;
  margin: 2px 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option value="Any">Any</option>
  <option value="USA">USA</option>
  <option value="Chile">Chile</option>
  <option value="Spain">Spain</option>
</select>
<div class="views-row">
  <div class="views-field views-field-field-bank-office-pais-value-USA">
    <span class="field-content">this is div USA</span>
  </div>
  <div class="views-field views-field-field-bank-office-pais-value-Chile">
    <span class="field-content">this is div Chile</span>
  </div>
  <div class="views-field views-field-field-bank-office-pais-value-Spain">
    <span class="field-content">this is div Spain</span>
  </div>
</div>

小提琴:http://jsfiddle.net/yjc8jsvw/92/

更新:我用叉子叉了叉小提琴:http://jsfiddle.net/u96xfo4x/28/

我现在遇到的问题是,这适用于jquery 1.6,但不适用于带有jquery migrate的2.0+。

我需要帮助更新此脚本。

谢谢。

尝试将JS的第5行更改为:

$('div.views-row div:not(.div-' + val + ')').hide();

请参阅此处的工作小提琴:http://jsfiddle.net/o56g7804/1/其中包含"test"文本的div在下拉列表更改后保持不变。