[英]How can I add a third conditional to ternary statement?
我有一個帶有3個單選按鈕的搜索框。 書籍和網站單選按鈕起作用。 當您選擇兩個單選按鈕之一輸入術語時,它將相應地執行搜索。 但是,我想添加另一個條件,以便在第二個單選按鈕(雜志)被打勾時,它將對那個URL執行搜索。 鏈接到我的小提琴https://jsfiddle.net/pk4mowfg/
我認為這是必須固定的路線,以實現目標
searchType === 'website'? window.open(websiteUrl, '_blank') : window.open(catalogUrl, '_blank');
<script>
let searchType = "catalog";
$("#catalog").prop('checked', true);
$("#editsubmit").click(function(e){
e.preventDefault();
if ($("#q").val().length > 0){
let term = $("#q").val().split(' ').join("%20");
let websiteUrl = 'https://www.delawarelibrary.org/search/node/'+ term;
let magUrl = 'https://ohioweblibrary.org/search/?q='+ term;
let catalogUrl = 'https://catalog.clcohio.org/polaris/search/searchresults.aspx?ctx=106.1033.0.0.24&type=Keyword&term='+term;
searchType === 'website'? window.open(websiteUrl, '_blank') : window.open(catalogUrl, '_blank');
}
});
$('#frmSearch').keypress(function (e) {
if ($("#q").val().length > 0){
if(e.which == 13) {
e.preventDefault();
let term = $("#q").val().split(' ').join("%20");
let websiteUrl = 'https://www.delawarelibrary.org/search/node/'+ term;
let magUrl = 'https://ohioweblibrary.org/search/?q='+ term;
let catalogUrl = 'https://catalog.clcohio.org/polaris/search/searchresults.aspx?ctx=106.1033.0.0.24&type=Keyword&term='+term;
searchType === 'website'? window.open(websiteUrl, '_blank') : window.open(catalogUrl, '_blank');
}
}
});
$("#catalog").click(function(){
searchType = 'catalog';
});
$("#owl").click(function(){
searchType = 'mag';
console.log('magclicked');
});
$("#site").click(function(){
searchType = 'website';
});
</script>
可以定義一個urlMapper
對象和一個將searchType
映射到url的函數,而不是if else
語句或嵌套三元數
const urlMapper = {
website: 'website url',
catalog: 'catalog url'
}
const getUrl = searchType => urlMapper[searchType] || 'default url';
console.log(
getUrl('website'),
getUrl('catalog'),
getUrl('unknown')
);
您可以對前一個三進制的else
部分使用另一個三進制運算來鏈接它們。
searchType === 'website'? window.open(websiteUrl, '_blank') :
searchType === 'catalog' ? window.open(catalogUrl, '_blank') :
window.open(magUrl, '_blank');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.