елементарно търсене

obqvi_in

Registered
[js]
function doSearch() {
var q = document.getElementById("q");
var v = q.value.toLowerCase();
var rows = document.getElementsByTagName("tr");
var on = 0;
for ( var i = 0; i < rows.length; i++ ) {
var fullname = rows.getElementsByTagName("td");
fullname = fullname[0].innerHTML.toLowerCase();
if ( fullname ) {
if ( v.length == 0 || (v.length < 1 && fullname.indexOf(v) == 0) || (v.length >= 1 && fullname.indexOf(v) > -1 ) ) {
rows.style.display = "";
on++;
} else {
rows.style.display = "none";
}
}
}
var n = document.getElementById("noresults");
if ( on == 0 && n ) {
n.style.display = "";
document.getElementById("qt").innerHTML = q.value;
} else {
n.style.display = "none";
}
}[/js]
Здравейте този скрипт търси символите в таблица но търси само в "<tr>" искам да търси и да показва само в "<td>" ето примерен html
HTML:
 <form action="#" method="get" onsubmit="return false;">
<input type="text" size="60" name="q" id="q" value="" onkeyup="doSearch();" />
</form>

<table>
<tr style="display:none;" id="noresults"> 
	<td>(няма намерени "<span id="qt"></span>")</td> 
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
В случая ако търся сиволи 1 или 4 ще ми излязат техните редове но аз искам да ми показва отделните цифри които търся
 
може да замениш таговете, в които искаш да тарсиш
препоръчвам ти div тагове, а не таблица,
защото може да се получи таблица с празни полета
ако имаш повече полета на ред някои от тях ще са с "display:none;"

Код:
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8" />
  <title>search test</title>
  <script>
  function doSearch() {
    var q = document.getElementById("q");
    var v = q.value.toLowerCase();
    // var rows = document.getElementsByTagName("tr"); // old
    var cell = document.getElementsByTagName("td"); // new
    // "td" таговете, в които искаш да тарсиш
    var on = 0;
    // for ( var i = 0; i < rows.length; i++ ) {
    for ( var i = 0; i < cell.length; i++ ) { // new
      // var fullname = rows[i].getElementsByTagName("td"); // old
      // fullname = fullname[0].innerHTML.toLowerCase(); // old
      var fullname = cell[i].innerHTML.toLowerCase(); // new
      if ( fullname ) {
        if ( v.length == 0 || 
             (v.length < 1 && fullname.indexOf(v) == 0) || 
             (v.length >= 1 && fullname.indexOf(v) > -1 ) ) {
          // rows[i].style.display = ""; // old
          cell[i].style.display = ""; // new
          on++;
        } else {
          // rows[i].style.display = "none"; // old
          cell[i].style.display = "none"; // new
        }
      }
    }
    var n = document.getElementById("noresults");
    if ( on == 0 && n ) {
      n.style.display = "";
      document.getElementById("qt").innerHTML = q.value;
    } else {
      n.style.display = "none";
    }
  }
  </script>
</head>
<body>
<form action="#" method="get" onsubmit="return false;">
<input type="text" size="60" name="q" id="q" value="" onkeyup="doSearch();" />
</form>
 <span style="display:none;" id="noresults"> 
  (няма намерени "<span id="qt"></span>") 
 </span> 
<table>
 
 
 
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
</body>
</html>
 

Back
Горе