javascript - jQuery版本与div搜索效果冲突

标签 javascript jquery html css

$(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>

你好,

我 fork 了一个具有滑动效果的 fiddle ,并调整了我的链接,它根据下拉框的选择隐藏和显示。我遇到的问题是隐藏页面上的所有 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>

fiddle : http://jsfiddle.net/yjc8jsvw/92/

更新: 我 fork 了 fork 的 fiddle : http://jsfiddle.net/u96xfo4x/28/

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

我需要帮助更新这个脚本。

谢谢。

最佳答案

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

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

在这里查看工作 fiddle :http://jsfiddle.net/o56g7804/1/下拉列表更改后,包含“测试”文本的 div 保持不变。

关于javascript - jQuery版本与div搜索效果冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297665/

相关文章:

php - 为什么 jQuery.parseJSON 不接受换行符?

javascript - 类名不是函数

jquery - 如何将 jQuery UI 代码添加到 ASP.NET Web 窗体页面?

html - IE中的蓝色表格背景

javascript - 表格事件行滚动滚动条

javascript - 悬停特定框时如何将 jQuery 实现到特定类的类?

javascript - 为什么这段代码不隐藏复选框?

javascript - jquery animate 不流畅

html - 我们可以为动态加载的脚本使用异步属性吗?

html - HTML 文件中的 &lt;style&gt; 标签未显示在浏览器中