2013-11-25 3 views
1

У меня есть поле поиска, если я набираю доски, он ничего не возвращает, но если я нахожу Board он делает. Я начал искать и нашел, что в отличие от HTML, XHTML чувствителен к регистру ....JQuery XML Find Attribute Case нечувствительный

Пример XML

<prop-db> 
<prop caption="Sign Board A" /> 
</prop-db> 

JS Отрывок

switch (last_search) { 
    case "show_all": 
     load('prop-db > prop'); 
     break; 
    default: 
     load('prop-db > prop[caption*="{0}"]'.format(last_search)); 
} 

Дело по умолчанию пытается найти то, что пользователю введенный в поле поиска. Это как функция нагрузки получает элементы с титрами:

if (!search) { 
    data2 = $(data).find('prop-db > prop').slice(-18); 
} else { //gets executed when search equals true (when load is called with a parameter) 
    data2 = $(data).find(syntax); 
} 

Так он должен найти каждый элемент, который содержит либо Board/картон/картон и т.д. ... (найти должно быть чувствительно к регистру)

EDIT - попытался это с фильтром + регулярное выражение, я знаю, что я делаю что-то неправильно ....:

data2 = $(data).find(syntax).filter(function() { 
    return $(this).text().match(new RegExp(str, 'i')); 
}); 
+0

Предложение: прямо задайте свой вопрос. – kjhughes

+0

Я отредактировал это только сейчас в нижней части OP ... – NullBy7e

+0

это выглядит актуально: http://stackoverflow.com/questions/11009315/need-help-to-make-jquery-find-case-insensitive –

ответ

0

Как насчет:

var regex = new RegExp(str, 'i'); 
data2 = $(data).find('prop-db > prop').filter(function() { 
    return $(this).attr('caption').match(regex); 
}; 

.text() вернет содержимое элемента x1212, который в примере в столбце представляет собой пустую строку. Вместо этого нам нужно проверить атрибут caption элемента <prop />.

Перенос создания создания объекта регулярного выражения из цикла гарантирует, что будет создан только один объект независимо от того, сколько элементов проверено.

Смежные вопросы