Если вы посмотрите на HTML для инициализированного виджета data-type="search"
, вы увидите, что форма поиска предварительно добавлена непосредственно перед элементом списка:
<form class="ui-listview-filter ui-bar-c" role="search">
<div class="ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield ui-body-c">
<input placeholder="Filter items..." data-type="search" class="ui-input-text ui-body-c">
<a href="#" class="ui-input-clear ui-btn ui-btn-up-c ui-btn-icon-notext ui-btn-corner-all ui-shadow ui-input-clear-hidden" title="clear text" data-theme="c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">clear text</span>
<span class="ui-icon ui-icon-delete ui-icon-shadow"></span>
</span>
</a>
</div>
</form>
<ul data-role="listview" data-filter="true" class="ui-listview">
<li data-theme="c" class="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-btn-up-c"><div class="ui-btn-inner ui-li"><div class="ui-btn-text"><a href="index.html" class="ui-link-inherit">Acura</a></div><span class="ui-icon ui-icon-arrow-r ui-icon-shadow"></span></div></li>
</ul>
Таким образом, учитывая эту информацию, вы можете видеть, что для выбора входных данных для поиска, соответственно элементу списка, ваш селектор должен выглядеть примерно так:
$("#search").prev().children().first().keyup(...)
, который выбирает предыдущий элемент одного уровня для представления списка (элемент <form class="ui-listview-finter">
), затем первый дочерний элемент этого элемента (), который должен быть элементом <input data-type="search" />
. Это также довольно быстрый селектор, использующий идентификатор и одноуровневые функции обхода.