基于JavaScript實現(xiàn)類似于百度學術高級檢索功能
來源:易賢網(wǎng) 閱讀:1352 次 日期:2016-08-04 14:16:23
溫馨提示:易賢網(wǎng)小編為您整理了“基于JavaScript實現(xiàn)類似于百度學術高級檢索功能”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了基于JavaScript實現(xiàn)類似于百度學術高級檢索功能 的相關資料,需要的朋友可以參考下

下面是高級檢索的核心功能代碼,我使用的是純js實現(xiàn),并未使用jquery:

<p class="fl srh-btn">

<input type="submit" class="srh-submit" style="height:px" value="高級搜索" id="highSearchObj"/>

</p> 

//省略部分調用關系

this.highSearch = function () {

document.getElementById('highSearchObj').disabled=true; 

var highSearchHtml = '<div class="highSearch" style="display:block"><div class="highMsg"><ul> \

<li><span id="tabReg" class="tab">包含關鍵詞</span><input id="kywds" value=""></li> \

<li><span id="tabReg" class="tab">不包含關鍵詞</span><input id="nokywds" value=""></li>\

<li><span id="tabReg" class="tab">檢索范圍</span>\

<select id="st">\

<option value ="byrw">本院認為</option>\

<option value ="sljg">審理經(jīng)過</option>\

<option value="ygsc">原告訴稱</option>\

<option value="bgbc">被告辯稱</option>\

</select></li>\

</ul>\

<input id="conditionObj" type="submit" value="新增一組條件"></input>\

<hr>\

<div class="fit">\

<select id="type">\

<option value ="all">全部</option>\

<option value ="pj">判決</option>\

<option value ="cd">裁定</option>\

<option value="tz">通知</option>\

<option value="jd">決定</option>\

<option value="tj">調解</option>\

</select><select id="round">\

<option value ="all">全部</option>\

<option value ="one">一審</option>\

<option value ="two">二審</option>\

<option value="again">再審</option>\

</select>\

<input id="bg" value="">-<input id="end" value="">\

<ul><li><span id="tabReg" class="tab">案由</span><input id="ay" value=""></input></li>\

<li><span id="tabReg" class="tab">法院</span><input id="fy" value=""></input></li>\

</ul></div>\

<ul id="sql"></ul>\

<input id="submitHighSearchObj" type="submit" value="提交高級搜索"></input>\

</div></div>';

this.highSearchObj = $(highSearchHtml);

$("body").append(this.highSearchObj);

$("#conditionObj").click(function(){

var kywds="\""+document.getElementById("kywds").value.split(" ").join("\"&\"")+"\"";

var st=document.getElementById("st").value;

var nokywds="\""+document.getElementById("nokywds").value.split(" ").join("\"|\"")+"\"";

var sql="<li name=\"highTag\">@("+st+")("+kywds+"-"+nokywds+")</li>";

$("#sql").append(sql);

})

$("#submitHighSearchObj").click(function(){

var highTags=document.getElementsByName("highTag");

var tags="";

var filters="";

var round=document.getElementById("round").value;

var type=document.getElementById("type").value;

var reason=document.getElementById("ay").value.split(" ").join(",");

var court=document.getElementById("fy").value.split(" ").join(",");

var begin=document.getElementById("bg").value;

var end=document.getElementById("end").value;

if(highTags.length==){

var kywds="\""+document.getElementById("kywds").value.split(" ").join("\"&\"")+"\"";

var st=document.getElementById("st").value;

var nokywds="\""+document.getElementById("nokywds").value.split(" ").join("\"|\"")+"\"";

tags="@("+st+")("+kywds+"-"+nokywds+")"; 

} else {

for(i=;i<highTags.length;i++){

tags+=highTags[i].innerHTML;

}

if(round !="all") {

filters+=" round:"+round+";";

}

if(type !="all") {

filters+=" type:"+type+";";

}

if(reason !="") {

filters+=" reason:"+reason+";";

}

if(court !="") {

filters+=" court:"+court+";";

}

if(begin !="" && end !="") {

filters+=" year:";

while(begin<=end) {

filters=filters+begin+",";

begin++;

}

}

if(filters !="") {

tags="magic:"+tags+";filter:"+filters;

}

var formObj = $('<form id="form" action="/search" target="_self" method="get"></form>');

var html = ['<input type="hidden" name="type" value="">'];

html.push('<input type="hidden" name="keyword" value="' + encodeURIComponent(tags) + '">');

html.push('<input type="hidden" name="TypeKey" value="' + encodeURIComponent(tags) +'">');

formObj.html(html.join(","));

$("body").append(formObj);

formObj.submit();

});

// $("#ay").keyup(function(e){

// });

}

第3行到第36行主要是彈窗的HTML代碼。

37,38行使用了js中常用的最簡單的在頁面中動態(tài)修改前臺的方法。

第39行和第46行均為對新增代碼的動作處理,用于提交條件和子條件。

在第46行的函數(shù)里面,做了對字符串的拼接處理。

在第88行到第96行,實現(xiàn)了通過隱藏表單提交查詢條件的js+html調用。

jquery js實現(xiàn)高級條件檢索功能中檢索條件切換

基本思路:

1.HTML:

使用table展示所有檢索條件,使用input控件展示每一個檢索條件,定義兩種CSS類樣式,用以區(qū)分檢索條件的選中與未選中狀態(tài)

2.JS實現(xiàn):

為未選中的input綁定點擊事件,可通過綁定未選中的樣式類來實現(xiàn),代碼實現(xiàn)

function (event) {//event為點擊事件

$(event.target).parent().find( '.條件input-selected' ).toggleClass('條件input-selected' ).toggleClass( '條件input-default');

$(event.target).toggleClass( '條件input-selected' ).toggleClass('條件input-default' );

},

此時就實現(xiàn)了所有檢索條件的自動切換

更多信息請查看網(wǎng)絡編程
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網(wǎng)