Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   поиск на странице (https://javascript.ru/forum/jquery/47521-poisk-na-stranice.html)

sergeo_89 27.05.2014 12:12

поиск на странице
 
решил попробовать написать код поиска символов на странице самостоятельно, но хватило меня только на это
<form  id="search" method="POST" action="" name="searchform">
	<input id="ButtonSearch" type="submit" value="Найти">
	<input id="textSearch" type="text" name="search" value="Поиск..">
	</form>

var searchText = $('#textSearch').val();

$('#search').submit(function(){
	if(searchText == 'Поиск..' || searchText == ''){
alert('Вы не заполнили поле ввода');
		return false;
		
	}
	else{
		globalSearch.call(searchText);
	}
})

function globalSearch(myString){
	var allElements = $('*');
	var resultSearch;
	
	for (var i = 0; i < allElements.length; i++) {
		if(allElements.text() == myString){
			resultSearch = myString;
			$('.block_C').prepend('<p>' + resultSearch + '</p>');
		}
	};
}
Подскажите что не так, вроде логику соблюдал...

рони 27.05.2014 12:20

почему 1 строка не в 3 скрипта?

рони 27.05.2014 12:34

sergeo_89,
:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  	$(function ()
  	  {
  	    $('#search').submit(function()
  	      {
  	        var searchText = $('#textSearch').val();
  	        if(searchText == 'Поиск..' || searchText == '') {
  	          alert('Вы не заполнили поле ввода');
  	        }
  	        else {
  	          globalSearch(searchText);
  	        }
  	        return false;
  	      }
  	    )
  	    function globalSearch(myString) {
  	      var allElements = $('*').not('.block_C');
  	      for (var i = 0; i < allElements.length; i++) {
  	        if($(allElements[i]).text() == myString) {
  	          $('.block_C').prepend('<p>' + myString + '</p>');
  	        }
  	      };
  	    }
  	  }
  	)
  </script>
</head>

<body>
  <p>test</p>
  <div class="block_C"></div>
<form  id="search" method="POST" action="" name="searchform">
	<input id="ButtonSearch" type="submit" value="Найти">
	<input id="textSearch" type="text" name="search" value="Поиск..">
	</form>

</body>

</html>

sergeo_89 27.05.2014 12:55

О Спасибо вам за помощь!) радует, что был близок)

рони 27.05.2014 12:58

sergeo_89,
for неправильно использовать в jquery для это есть each

sergeo_89 27.05.2014 13:07

получается на jquery будет выглядеть так
function globalSearch(myString){
 	var allElements = $('*').not('.block_C');
 	allElements.each(function(){
 		if($(this).text() == myString) {
 		   	$('.block_C').prepend('<p>' + myString + '</p>');
 		}
 	})
 }
)))

рони 27.05.2014 13:17

sergeo_89,
да

krasovsky 28.05.2014 07:47

Цитата:

Сообщение от рони (Сообщение 313647)
sergeo_89,
for неправильно использовать в jquery для это есть each

Отчего же? Я думаю что нативные средства можно и нужно применять максимально, кроме случаев когда это явно вредит,или усложняет/значительно увеличивает код.

sergeo_89 28.05.2014 09:08

и снова тупик, конструкцией
$('*:not(.block_C)')
Я выбираю все элементы Тэги, Как же мне выбрать содержимое этих тэгов?! и плюс почему то не срабатывает код
$(function(){
  $('#search').submit(function(){
    var searchValue = $('#textSearch').val();
    var searchText = $('#textSearch').text();
    if(searchValue == '' || searchValue == 'Поиск..') {
      alert('Вы не заполнили поле ввода');
    }
    else {
      globalSearch(searchText);
    }
      return false;
    })

function globalSearch(myString){
  var regV = /\w\s\d[A-Za-z0-9-]+/g;
  var result = myString.search(regV);
  var allElements = ($('*:not(.block_C)'));
  allElements.each(function(){
    if($(this).text() == myString && result == -1) {
      $(this).css('background','#F9FF82');
      $('.block_C').prepend('<p>Результаты поиска:<br><br><span>' + myString + '</span><br><br></p>').addClass('searchResult');
        }
        else{
          globalSearchRemove(myString);
        }
      })
}

function globalSearchRemove(myResults){
    $('block_C p').fadeOut(300);
}

})

<form  id="search" method="POST" action="" name="searchform">
	<input id="ButtonSearch" type="submit" value="Найти">
	<input id="textSearch" type="text" name="search" value="Поиск..">
	</form>

подскажите где тут прокол

рони 28.05.2014 11:52

Цитата:

Сообщение от sergeo_89
почему то не срабатывает код

4 строка зачем?
Цитата:

Сообщение от sergeo_89
Как же мне выбрать содержимое этих тэгов?!

.html()


Часовой пояс GMT +3, время: 02:03.