问题描述
我有一个下拉列表,选择时应显示一个与该值相关的表。当使用此jquery代码调用表时,我选择第一个下拉列表,然后选择第二个下拉列表(用于表ID的值)。但是,一旦选择第二个下拉列表,该表就不会出现。为了显示该表格,我必须再次单击第二个下拉菜单,然后单击关闭,然后它将显示。对我在这里做错的任何建议吗?
以下是选择选项
jQuery(document).ready(function($){
$('select[name!="dropdownmain"]').hide();
$('select[name="' + $('select[name="dropdownmain"]').val() + '"]').show();
$('select[name="dropdownmain"]').change(function(){
$('select[name!="dropdownmain"]').hide();
$('select[name="' + $(this).val() + '"]').show();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="grid one-third">
<select name="dropdownmain" id="" title="">
<option value="">Select manufacturer</option>
<option value="dropdownmain1">Cooler Master </option>
<option value="dropdownmain2">Corsair </option>
<option value="dropdownmain3">Logitech </option>
<option value="dropdownmain4">Mad Catz </option>
<option value="dropdownmain5">Mionix </option>
<option value="dropdownmain6">Razer </option>
<option value="dropdownmain7">Roccat </option>
<option value="dropdownmain8">SteelSeries </option>
</select>
<select name="dropdownmain1" id="" title="" class="dropdown1">
<option value="">Choose you mouse</option>
<option value="14">Cooler Master Alcor</option>
<option value="15">Cooler Master Havoc</option>
<option value="16">Cooler Master Inferno</option>
<option value="19">Cooler Master Mizar</option>
<option value="20">Cooler Master Reaper</option>
<option value="21">Cooler Master Recon</option>
<option value="22">Cooler Master Sentinel Advance II</option>
<option value="26">Cooler Master Sentinel Advance</option>
<option value="17">Cooler Master Sentinel III</option>
<option value="23">Cooler Master Sentinel Z3RO-G</option>
<option value="24">Cooler Master Spawn</option>
<option value="25">Cooler Master Xornet</option>
<option value="18">Cooler Master Xornet II</option>
</select>
解决方法
实际上,您可以在没有jQuery DataTable的情况下进行操作,而可以通过常规表进行操作。
看看我的例子:
$(document).ready(function($){
$("#ddManufacturer").change(function() {
$('select[name!="dropdownmain"]').hide();
$('select[name="' + $(this).val() + '"]').show();
});
/*$('select[name!="dropdownmain"]').hide();
$('select[name="' + $('select[name="dropdownmain"]').val() + '"]').show();
$('select[name="dropdownmain"]').change(function(){
$('select[name!="dropdownmain"]').hide();
$('select[name="' + $(this).val() + '"]').show();
});*/
$("#dropdownmain1").change(function() {
loadTable($(this).val());
});
});
function loadTable(productId) {
$("#result").show();
$.ajax({
type: "GET",url: "https://my-json-server.typicode.com/SagnalracSO/repo/products",//contentType: "application/json; charset=utf-8",data: { id: productId },//dataType: "json",success: function (data,textStatus,jqXHR) {
var product = data[0];
$("#tblProdInfo").empty();
var html = '<thead><tr>' +
'<th>' + product.name + '</th>' +
'<th><img src="http://whatmouse.com/wp-content/uploads/' + product.image + '" height="60px;" width="60px;" /></th></tr></thead>' +
'<tbody><tr>' +
'<td>Launch Year</td><td>' + product.launch_year + '</td></tr>' +
'<tr><td>Dimensions,mm</td><td>' + product.dimensions + '</td></tr>' +
'<tr><td>Weight,gramms</td><td>' + product.weight + '</td></tr></tbody>';
$("#tblProdInfo").append(html);
},error: function (jqXHR,errorThrown) {
console.error('There was something wrong! Error Type: ' + textStatus + '. Description: ' + errorThrown);
}
});
}
.one-third {
width: 31.2%;
}
.grid {
margin-right: 3.2%;
float: left;
display: inline;
position: relative;
}
.one-third select {
margin: 5px 0;
width: 100%;
}
#result {
margin: 20px 0;
}
.tablepress {
margin-top: -10px;
border: 1px solid #2fa5cd;
}
.tablepress {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
margin-bottom: 1em;
}
.tablepress thead th,.tablepress tfoot th {
font-size: 15px;
color: #fff;
background-color: #2fa5cd;
}
.tablepress thead th {
border-bottom: 1px solid #ddd;
}
.tablepress tbody td,.tablepress tfoot th {
border-top: 1px solid #ddd;
}
.tablepress td,.tablepress th {
padding: 8px;
border: none;
background: 0 0;
text-align: left;
float: none !important;
}
.tablepress tbody td {
font-family: Tahoma;
font-size: 13px;
color: #414141;
line-height: 1.5;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="grid one-third">
<select id="ddManufacturer" name="dropdownmain">
<option value="">Select manufacturer</option>
<option value="dropdownmain1">Cooler Master </option>
<option value="dropdownmain2">Corsair </option>
<option value="dropdownmain3">Logitech </option>
<option value="dropdownmain4">Mad Catz </option>
<option value="dropdownmain5">Mionix </option>
<option value="dropdownmain6">Razer </option>
<option value="dropdownmain7">Roccat </option>
<option value="dropdownmain8">SteelSeries </option>
</select>
<select id="dropdownmain1" name="dropdownmain1" class="dropdown1" style="display: none;" >
<option value="">Choose you mouse</option>
<option value="14">Cooler Master Alcor</option>
<option value="15">Cooler Master Havoc</option>
<option value="16">Cooler Master Inferno</option>
</select>
<div id="result" style="display: none;">
<table id="tblProdInfo" class="tablepress">
</table>
</div>
</div>
重要:您需要在Ajax url 属性中替换我的服务器(要获取数据的服务器),并注意我将原始网址(来自您与我共享的网站)用于图像。您需要将这些网址替换为服务器(存储它们的网址)中的网址
快乐编码!