търсене на думи с главни букви

obqvi_in

Registered
Здравейте
HTML:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.0-beta3.js"></script>
<input placeholder="Search Me" id="box" type="text" />
<div class="navList">
    <div>A-b</div>
    <div>C-d</div>
    <div>E-f</div>
</div>
[js] <script>
$('#box').keyup(function(){
var valThis = $(this).val().toLowerCase();
if(valThis == ""){
$('.navList > div').show();
} else {
$('.navList > div').each(function(){
var text = $(this).text().toLowerCase();
(text.indexOf(valThis) >= 0) ? $(this).show() : $(this).hide();
});
};
});
</script>[/js]
Как да се направи така, че да търси само големи букви от думите и в същото време да показва и останалите в отделният див. Благодаря на всички.
 
Така е, заощото не го обясних както трябва. Нов пример:
<div class="duma">sofiq</div>-<div class="opisanie">stolicata</div> Ако напиша "sofiq" може и с малки да е по лесно, да ми излиза цялия див, но ако търся "stolicata" да не излиза нищо. Тоест да търси само в class="dumi" и да показва другия див с описанието.
 
Използвай това, което даде Revelation, но търси само в div.duma:

$('#box').keyup(function(){
var valThis = $(this).val();
if(valThis == ""){
$('.navList > div').show();
} else {
$('.navList > div span.term').each(function(){
var text = $(this).text().toUpperCase();
(text.indexOf(valThis) >= 0) ? $(this).parent('div').show() : $(this).parent('div').hide();
});
};
});

http://jsfiddle.net/u0vho9Lj/1/
 
Да знам, но предполагам идеята е да почне да мачва от първите, защото с indexOf , ако напишеш s ще изкара и бургас при първите резултати, когато чак конкретизираш търсенето, тогава ще се нормализират.
А така, както аз го дадох подсигурявам, че ще почна да търся в началото на низа.
 
Revelation каза:
Да знам, но предполагам идеята е да почне да мачва от първите, защото с indexOf , ако напишеш s ще изкара и бургас при първите резултати, когато чак конкретизираш търсенето, тогава ще се нормализират.
А така, както аз го дадох подсигурявам, че ще почна да търся в началото на низа.

Може да се сложи ограничение да не прави нищо до 3-тия знак. Така ще се подобрят резултатите. Но да regex-а дава предимства, има си и недостатъци. Също като алтернативните решения на тази задачка. Просто исках да отбележа някои неща, OP ще си реши кое да избере според неговата нужда.
 
Fakeheal каза:
Revelation каза:
Да знам, но предполагам идеята е да почне да мачва от първите, защото с indexOf , ако напишеш s ще изкара и бургас при първите резултати, когато чак конкретизираш търсенето, тогава ще се нормализират.
А така, както аз го дадох подсигурявам, че ще почна да търся в началото на низа.

Може да се сложи ограничение да не прави нищо до 3-тия знак. Така ще се подобрят резултатите. Но да regex-а дава предимства, има си и недостатъци. Също като алтернативните решения на тази задачка. Просто исках да отбележа някои неща, OP ще си реши кое да избере според неговата нужда.


И ти си права. Но, ако няма да се листват много резултати, регулярния израз е идеален. При толкова елементи не се усеща скоростта. Ако вече има наистина много елементи, ще се търси друго по-оптимизирано решение.
 
Между другото това, което писахме до сега е пълна глупост.

Нека да използваме мощта на HTML 5

http://jsfiddle.net/u0vho9Lj/5/

Естествено, за да се получи ефекта, който стана преди това, ще трябва пак да се барне тук-там. Но виж, възможно е този вариант да те удовлетвори повече.
 

Back
Горе