2012-05-03 3 views
0

Сегодня я начинаю изучать jQuery. В настоящее время я нахожусь на 24-м учебном курсе PHPachademy. У меня много проблем, чтобы этот конкретный учебник работал правильно. Я уверен, что это семантическая ошибка> _ < ;;Как я могу выделить абзацы с ввода текста в jquery

Херес Attempt JSfiddles

Наконец кто-то может объяснить, почему эту линию мне?

('" + search_name + "') 

почему так много + «s и '" в строке?

ответ

4
$('#names li').removeClass('highlight'); 

Вместо

$(#names li).removeClass('highlight'); 

Вы ссылаться на #names переменную вместо использования '#names li' строки

Fixed fiddle

Наконец кто-то может объяснить, почему эта линия меня? (' "+ SEARCH_NAME +"')

:contains селектор docs:

Описание: Выберите все элементы, которые содержат заданный текст. Соответствующий текст может отображаться непосредственно внутри выбранного элемента, в любом из потомков этого элемента или их комбинации. Как и в селекторах значений атрибутов, текст внутри круглых скобок: contains() может быть записан как одно слово или окружен кавычками. Текст должен иметь соответствующий случай, который нужно выбрать.

Fiddle without the quotation marks

Кстати, так как вы пытаетесь узнать Jquery

Важное правило о JQuery есть JQuery должен не может не может заменить JavaScript! это библиотека абстракции выше javascript. Не используйте его, this.value может принести вам значение ввода намного проще и быстрее, чем $(this).val().

You can read more here

+0

Вы могли бы вслух объяснить мне почему использование + и '"в том, что содержит() –

+0

@MatthewHarwood. Читайте обновленный ответ. В jQuery lib есть замечательный сайт, объясняющий себя, это ваш лучший новый друг! – gdoron

+0

arg Я ненавижу быть раздражающим, но могу ли вы дайте мне образец «голого слова» I <3, который вы помечаете правильно. –

2

просто добавить "

$("#names li") 

http://jsfiddle.net/Hg72b/7/

+0

Не могли бы вы объяснить причину + "? In the contains?() –

+0

+ просто для конкатенации строк. Search_name - значение ввода – Yorgo

+0

@Yorgo. Он не говорит об этом.' Текст внутри круглых скобок: contains() может быть написано голым словом или окружено кавычками. ' – gdoron

2

enter image description here

+0

Это я или это действительно уродливая семантика? –

+0

@MatthewHarwood. Если бы это был C# или Java, вы должны были избегать цитат, так что это даже уродливее. – gdoron

0

При ссылке что-то в йот JQuery всегда разобрать строку в виде

$('somethingtosearchfor').doSomethingOnIt() 

В вашем случае вы создаете строку jquery из переменной search_name, поэтому вам нужно выполнить конкатенацию (+) между строками, которые ограничены символом ". С помощью этой конкатенации вы создаете синтаксис jquery для поиска в dom, и этот синтаксис должен быть строкой, поэтому вы объединяете «символы с вашим именем поиска», чтобы иметь в результате тот же синтаксис, что и gdoron.

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