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