如果在 jQuery 中找不到 ID,则显示不同的结果
Display different result if didn't find the ID in jQuery
我有一个 select 菜单,一些 div 与之关联。我希望 select 菜单根据 select 菜单值隐藏/显示 divs。但是如果 jQuery 没有找到关联 div 那么它应该提醒一些文本。
这是我的代码:
$('select').change(function(){
var div = $(this).val();
$('#results div').hide();
$('#' + div).show();
});
#results div {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="div_1">Div 1</option>
<option value="div_2">Div 2</option>
<option value="div_3">Div 3</option>
</select>
<div id="results">
<div id="div_1">Div 1</div>
<div id="div_2">Div 2</div>
</div>
正如您在上面的示例中看到的那样,没有 DIV 3
,所以我想要一个提示,说明没有找到 DIV 3
。
感谢任何形式的帮助:)
使用 jQuery 对象的 length
检查匹配项
$('select').change(function() {
var $div = $('#' + $(this).val()).show();
if ($div.length) {
$('#results div').not($div).hide();
} else {
alert('No Match')
}
});
我个人认为这是一种糟糕的用户体验,更好的方法是删除或禁用没有匹配项的 <option>
。
$('option').filter(function(){
return !$('#' + this.value).length;
}).remove()// or prop('disabled', true);
检查这个fiddle
$('select').change(function(){
var div = $(this).val();
$('#results div').hide();
if($('#results').find('#' + div).length > 0){
$('#' + div).show();
} else{
alert("not find")
}
});
我有一个 select 菜单,一些 div 与之关联。我希望 select 菜单根据 select 菜单值隐藏/显示 divs。但是如果 jQuery 没有找到关联 div 那么它应该提醒一些文本。
这是我的代码:
$('select').change(function(){
var div = $(this).val();
$('#results div').hide();
$('#' + div).show();
});
#results div {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="div_1">Div 1</option>
<option value="div_2">Div 2</option>
<option value="div_3">Div 3</option>
</select>
<div id="results">
<div id="div_1">Div 1</div>
<div id="div_2">Div 2</div>
</div>
正如您在上面的示例中看到的那样,没有 DIV 3
,所以我想要一个提示,说明没有找到 DIV 3
。
感谢任何形式的帮助:)
使用 jQuery 对象的 length
检查匹配项
$('select').change(function() {
var $div = $('#' + $(this).val()).show();
if ($div.length) {
$('#results div').not($div).hide();
} else {
alert('No Match')
}
});
我个人认为这是一种糟糕的用户体验,更好的方法是删除或禁用没有匹配项的 <option>
。
$('option').filter(function(){
return !$('#' + this.value).length;
}).remove()// or prop('disabled', true);
检查这个fiddle
$('select').change(function(){
var div = $(this).val();
$('#results div').hide();
if($('#results').find('#' + div).length > 0){
$('#' + div).show();
} else{
alert("not find")
}
});