我想使用JQuery实时搜索所有HTML <a></a>
元素。
<div id="citysname">
<?php foreach($get_cities as $place) { ?>
<a href="<?php echo base_url().'init/place/'.$place->cities; ?>" id="place" class="<?php echo $place->cities; ?>"><?php echo $place->cities; ?></a>
<?php } ?>
</div>
$(document).on("keyup", "#searchcity", function(){
var city = $(this).val();
$( "#citysname a" ).each(function() {
$(this).not('[class^='+ city +']').hide();
$(this+'[class^='+ city +']').show();
});
我想搜索并突出显示<a>
元素,如果它的类匹配,并且如果类不匹配,我想隐藏<a>
个元素。
使用show并隐藏元素不会切换。如果匹配则元素显示但是当我擦除它时它是否与所有元素不匹配。
我的代码位于jsfiddle。
答案 0 :(得分:2)
嗨,你可以像这样做
$(document).ready(function(){
$(document).on("keyup", "#searchcity", function(){
var city = $(this).val();
$(".active").removeClass("active");
$('#citysname a[class*='+city+']').addClass('active');
});
});
&#13;
.active{
background-color:yellow;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="searchcity">
<div id="citysname">
<a href="#" id="place" class="kathmandu">Kathmandu</a>
<a href="#" id="place" class="bhaktapur">bhaktapur</a>
<a href="#" id="place" class="Narayangarh">Narayangarh</a>
<a href="#" id="place" class="lalitpur">lalitpur</a>
<a href="#" id="place" class="something">something</a>
<a href="#" id="place" class="hello">hello</a>
</div>
&#13;
答案 1 :(得分:1)
这个怎么样:
$(document).on("keyup", "#searchcity", function () {
var city = $(this).val();
if (city.trim().length) {
$("#citysname").find("a").each(function () {
if ($(this).attr('class').indexOf(city) > -1)
$(this).addClass('highlight');
else $(this).removeClass('highlight');
});
} else $("#citysname a").removeClass('highlight');
});
答案 2 :(得分:1)
特点:
string
城市上的任何字母。
$(document).ready(function(){
$(document).on("keyup", "#searchcity", function(){
var city = $(this).val();
$( "#citysname a" ).each(function() {
var classCity = $(this).attr("class")
var matcher = new RegExp("^"+city, "i");
if (matcher.test(classCity)) {
$(this).show().addClass('highlight');
}
});
if(!city.trim()){
$( "#citysname a" ).each(function() {
$(this).removeClass('highlight');
});
}
});
});
&#13;
.highlight{
background-color:yellow;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="searchcity">
<div id="citysname">
<a href="#" id="place" class="NewYork">New York</a>
<a href="#" id="place" class="SanFrancisco">San Francisco</a>
<a href="#" id="place" class="Paris">Paris</a>
<a href="#" id="place" class="Palma">Palma</a>
<a href="#" id="place" class="Tokyo">Tokyo</a>
<a href="#" id="place" class="RiodeJaneiro">Rio de Janeiro</a>
</div>
&#13;
答案 3 :(得分:0)
$(document).ready(function(){
$(document).on("keyup", "#searchcity", function(){
var city = $(this).val();
$( "#citysname" ).each(function() {
$(":not('"+city+"')", this).hide();
$("."+city, this).show();
});
});
});