我用过这个:
$('#srch').click(function(){
var s='';
s = $('#gt').val();
if (s == '')
{
$("p") .addClass("default");
} else {
$("p:contains('"+ s +"')") .addClass("active");
}
});
它的工作,但它继续存储以前的数据。我希望清除以前的数据。
答案 0 :(得分:1)
使用removeClass()
删除突出显示的元素类
$('#srch').click(function(){
$("p").removeClass("active");
...
}
答案 1 :(得分:0)
要在搜索后清除输入,请使用$(...).val('')
:
$('#srch').click(function(){
var s='';
s = $('#gt').val();
$('#gt').val('');
if (s == ''){
$("p") .addClass("default");
} else{
$("p:contains('"+ s +"')") .addClass("active");
}
});
答案 2 :(得分:0)
检查
$('#srch').on("click",function(){
var s = $('#gt').val();
$("p").removeClass("active")
if (s == ''){
$("p").addClass("default");
} else{
$("p:contains('"+ s +"')").addClass("active");
}
});
<强> Working Fiddle Demo 强>
答案 3 :(得分:0)
使用ternary operator
,您可以单行执行此操作。
$('#srch').click(function(){
$("p") .removeClass("active") ;
var s='';
s = $('#gt').val();
s == ''? $("p") .addClass("default") : $("p:contains('"+ s +"')") .addClass("active");
});
&#13;
.default {
background: green;
}
.active {
background: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>This is a test contain</p>
<input type='text' id='gt'/>
<input type='button' id='srch'>
&#13;