Javascript 在我键入字母并将其全部删除后,框中的单词应';我没有显示任何颜色 瑞德先生{ 颜色:红色; } 声称 飞机 $(文档).ready(函数(){ $('#search').keyup(函数(){ 搜索框($(this.val()); }); }); 函数搜索框(inputStr){ $('#boxdata')。查找('tr')。每个(函数(索引,行){ 变量名称=$(行).find('td'); 如果(names.length>0){ var=false; 每个函数的名称(索引,td){ var regExp=new regExp(inputStr,'gi'); if(regExp.test($(td.text())){ 发现=真; 返回false; } if($(“输入[类型=文本]”).val()=''){ } }); if(find==true) $(行).addClass(“红色”); 其他的 $(行).removeClass(); } }); }
在我在文本字段中键入字母并全部删除后,框中的单词不应显示任何颜色。 但我的代码在所有单词上不断显示红色。Javascript 在我键入字母并将其全部删除后,框中的单词应';我没有显示任何颜色 瑞德先生{ 颜色:红色; } 声称 飞机 $(文档).ready(函数(){ $('#search').keyup(函数(){ 搜索框($(this.val()); }); }); 函数搜索框(inputStr){ $('#boxdata')。查找('tr')。每个(函数(索引,行){ 变量名称=$(行).find('td'); 如果(names.length>0){ var=false; 每个函数的名称(索引,td){ var regExp=new regExp(inputStr,'gi'); if(regExp.test($(td.text())){ 发现=真; 返回false; } if($(“输入[类型=文本]”).val()=''){ } }); if(find==true) $(行).addClass(“红色”); 其他的 $(行).removeClass(); } }); },javascript,jquery,regex,Javascript,Jquery,Regex,在我在文本字段中键入字母并全部删除后,框中的单词不应显示任何颜色。 但我的代码在所有单词上不断显示红色。 请告诉我在哪里更改代码。您的问题是,空字符串匹配了这两个单词,因为RegExp同时传递了它们 我想这应该适用于你的情况: <style type="text/css"> .red{ color : red; } </style> </head> <body> <input t
请告诉我在哪里更改代码。您的问题是,空字符串匹配了这两个单词,因为RegExp同时传递了它们 我想这应该适用于你的情况:
<style type="text/css">
.red{
color : red;
}
</style>
</head>
<body>
<input type="text" id="search"/>
<table id="boxdata">
<tr>
<td class="namebox1">claim</td>
</tr>
<tr>
<td class="namebox2">plane</td>
</tr>
</table>
<script>
$(document).ready(function(){
$('#search').keyup(function(){
searchBox($(this).val());
});
});
function searchBox(inputStr) {
$('#boxdata').find('tr').each(function(index, row){
var names = $(row).find('td');
if(names.length > 0) {
var found = false;
names.each(function(index, td) {
var regExp = new RegExp(inputStr, 'gi');
if(regExp.test($(td).text())) {
found = true;
return false;
}
if($("input[type=text]").val() == ''){
}
});
if(found == true)
$(row).addClass("red");
else
$(row).removeClass();
}
});
}
</script>
</body>
您的问题是空文本满足您的正则表达式检查,因为“平面”和“声明”都包含文本“” 在搜索框函数中,将if检查更改为也检查inputStr是否为空
$(document).ready(function(){
$('#search').keyup(function(){
searchBox($(this).val());
});
});
function searchBox(inputStr) {
var box = $('#boxdata');
box.find('tr').each(function(index, row){
var names = $(row).find('td');
if(names.length > 0) {
var found = false;
names.each(function(index, td) {
var regExp = new RegExp(inputStr, 'gi');
if(regExp.test($(td).text())) {
found = true;
}
if($("input").val().length == 0){
found=false;
}
});
if(found) {
$(row).addClass("red");
}
else {
$(row).removeClass("red");
}
}
});
}
问题不清楚……例如,如果我在文本字段中键入字母“c”。然后,单词“claim”字体颜色必须由黑色变为红色。如果我输入字母“p”。然后“平面”一词必须改变。你能理解吗?我还添加了一些css代码。解决这个问题没关系。好的,明白了。。。看看我的解决方案。。。
function searchBox(inputStr) {
var box = $('#boxdata');
box.find('tr').each(function(index, row){
var names = $(row).find('td');
if(names.length > 0) {
var found = false;
names.each(function(index, td) {
var regExp = new RegExp(inputStr, "gi");
console.log(inputStr);
if(regExp.test($(td).text()) && inputStr != "") {
found = true;
return false;
}
});
if(found == true){
$(row).addClass("red");
}
else {
$(row).removeClass();
}
}
});
}