Я хочу отфильтровать список элементов, нажав на один столбец/строку в элементе списка. Когда я нажимаю «Продажи», отображаются только элементы в списке из категории «Продажи». Когда я снова нажму «Продажи», отобразятся все элементы в списке.Javascript работает в jsfiddle, но не в ASP .net
Он работает, как я хочу на jsfiddle
Но почему он не работает в Visual Studio на ASP .NET? Он бросает исключение в
...
var a = p.getElementsByTagName("a")[0];
...
Это мой HTML-код:
<div data-role="page" id="page1">
<div data-role="content">
<ul data-role="listview" data-inset="false" data-filter="true" id="testList">
<li data-icon="false">
<p class="ui-li-heading">
<strong> 1</strong>
</p>
<p class="ui-li-aside">
<span>
<a href="javascript:void(0)" class="areaItem" id="areaItem">Sales</a>
</span>
<span class="ui-icon ui-icon-gear" style="display: inline-block;"></span>
<span class="ui-icon ui-icon-check" style="display: inline-block;"></span>
</p>
</li>
</div>
</div>
Это мой Javascript:
var filtered = 0;
$(".areaItem").click(function() {
var SearchTerm = $(this).text();
var ul = document.getElementById("testList");
var liArray = ul.getElementsByTagName("li");
for(var i=0; i<liArray.length; i++) {
var p = liArray[i].getElementsByTagName("p")[0];
var a = p.getElementsByTagName("a")[0];
if(filtered == 1) {
$(liArray[i]).show();
} else {
if(a.text.localeCompare(SearchTerm) != 0) {
$(liArray[i]).hide();
}
}
}
if (filtered == 0) {
filtered = 1;
} else {
filtered = 0;
}
});
Вы отлаживали проверку элемента 'p'? –
Вы уверены, что в 'p' есть' '' элементы? если нет, возникает ошибка, потому что вы эффективно пытаетесь присвоить 'a = undefined [0];' <- получить нулевой элемент из неопределенного не совсем возможно AFAIK –
Он корректно работает в jsfiddle. В visual studio элемент p имеет в поле innerHTML именно то, что я хочу. – ThePavolC