поиск текста в дочернем div
Добрый день! В jQuery пока что не силен. Подскажите пожалуйста как найти текст внутри нескольких div'ов? Искал решение здесь, но не получается.
<div class="source"> <h2>unaccountedPoly2_source</h2> <div class="item"> <div class="PrivateItem"> <input type="checkbox" onchange="layerStatusChanged(this)" id="Private1" name="Private" checked="checked" value="2543" class="ui-helper-hidden-accessible"> <label for="Private1" class="button_text" role="button" aria-disabled="false"><span class="ui-button-text">Приватный</span></label> </div> <div class="AccessoryItem"> <input type="checkbox" onchange="layerAccessoryChanged(this)" id="Item0" name="Items" checked="checked"> <span>unaccountedPoly2</span> </div> </div> </div> необходимо при вводе в input, проверять текст в <span> на совпадение в <div class=AccessoryItem> и при не совпадении скрывать блок <div class=source> |
Цитата:
|
ну например <input type="text" id="text-search" />
|
git_bind,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.AccessoryItem span {
cursor: pointer;
background: #FFCC00;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
var s = $("#text-search"), b = $(".AccessoryItem span"), d = $(".source");
s.on("input",function() {
d.toggle(this.value == b.text());
});
});
</script>
</head>
<body> <input type="text" id="text-search" />
<div class="source">
<h2>unaccountedPoly2_source</h2>
<div class="item">
<div class="PrivateItem">
<input type="checkbox" onchange="layerStatusChanged(this)" id="Private1" name="Private" checked="checked" value="2543" class="ui-helper-hidden-accessible">
<label for="Private1" class="button_text" role="button" aria-disabled="false"><span class="ui-button-text">Приватный</span></label>
</div>
<div class="AccessoryItem">
<input type="checkbox" onchange="layerAccessoryChanged(this)" id="Item0" name="Items" checked="checked">
<span>unaccountedPoly2</span>
</div>
</div>
</div>
</body>
</html>
|
супер, спасибо! а можно как-то сделать поиск по символьно? например:
<body> <input type="text" id="text-search" /> <div class="source"> <h2>unaccountedPoly2_source</h2> <div class="item"> <div class="PrivateItem"> <input type="checkbox" onchange="layerStatusChanged(this)" id="Private1" name="Private" checked="checked" value="2543" class="ui-helper-hidden-accessible"> <label for="Private1" class="button_text" role="button" aria-disabled="false"><span class="ui-button-text">Приватный</span></label> </div> <div class="AccessoryItem"> <input type="checkbox" onchange="layerAccessoryChanged(this)" id="Item0" name="Items" checked="checked"> <span>unaccountedPoly2 source</span> </div> </div> </div> <div class="source"> <h2>Poly_source</h2> <div class="item"> <div class="PrivateItem"> <input type="checkbox" onchange="layerStatusChanged(this)" id="Private1" name="Private" checked="checked" value="2543" class="ui-helper-hidden-accessible"> <label for="Private1" class="button_text" role="button" aria-disabled="false"><span class="ui-button-text">Приватный</span></label> </div> <div class="AccessoryItem"> <input type="checkbox" onchange="layerAccessoryChanged(this)" id="Item0" name="Items" checked="checked"> <span>Poly source</span> </div> </div> </div> если в input вводить посимвольно "P" "o" "l" "y" то чтобы показывалось оба div, но если еще добавить " "(пробел), то остался последний div где в span записано "Poly source" |
Цитата:
|
ну то есть, при вводе поочередно каждого символа(как при событии keyup) проверялись все span на вхождение символа в строку записанную в span
|
Цитата:
ниже вариант... сработает тот AccessoryItem span где есть совпадение, вводить или unaccountedPoly2 source или Poly source далее сами.
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.AccessoryItem span {
cursor: pointer;
background: #FFCC00;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
var s = $("#text-search"), b = $(".AccessoryItem span"), d = $(".source");
s.on("input",function() {
var val = this.value;
d.each(function(indx, el){
el = $(el);
el.toggle(val == el.find(b).text());
});
});
});
</script>
</head>
<body> <input type="text" id="text-search" />
<div class="source">
<h2>unaccountedPoly2_source</h2>
<div class="item">
<div class="PrivateItem">
<input type="checkbox" onchange="layerStatusChanged(this)" id="Private1" name="Private" checked="checked" value="2543" class="ui-helper-hidden-accessible">
<label for="Private1" class="button_text" role="button" aria-disabled="false"><span class="ui-button-text">Приватный</span></label>
</div>
<div class="AccessoryItem">
<input type="checkbox" onchange="layerAccessoryChanged(this)" id="Item0" name="Items" checked="checked">
<span>unaccountedPoly2 source</span>
</div>
</div>
</div>
<div class="source">
<h2>Poly_source</h2>
<div class="item">
<div class="PrivateItem">
<input type="checkbox" onchange="layerStatusChanged(this)" id="Private1" name="Private" checked="checked" value="2543" class="ui-helper-hidden-accessible">
<label for="Private1" class="button_text" role="button" aria-disabled="false"><span class="ui-button-text">Приватный</span></label>
</div>
<div class="AccessoryItem">
<input type="checkbox" onchange="layerAccessoryChanged(this)" id="Item0" name="Items" checked="checked">
<span>Poly source</span>
</div>
</div>
</div>
</body>
</html>
|
Цитата:
http://angular.github.io/angular-phonecat/step-3/app/ |
спасибо большое за ответы!
|
| Часовой пояс GMT +3, время: 08:34. |