JavaScript строка символа новой строки?

Я ответил на это в другом вопросе со всеми подробностями, которые могут вам понадобиться:

Обнаруживать IF, зависающий над элементом с помощью jQuery (на момент написания имеется 99 секунд)

В принципе, вы можете сделать что-то вроде:

var ishovered = oi.is(":hover");

Это работает, только если oi - объект jQuery, содержащий один элемент. Если имеется несколько элементов, то вам необходимо применить к каждому элементу, например:

var hoveredItem = !!$('ol>li').filter(function() { return $(this).is(":hover"); });
                  // not .filter(':hover'), as we can't apply :hover on multiple elements

Это было протестировано, начиная с jQuery 1.7.

390
задан askewchan 12 September 2013 в 20:15
поделиться

5 ответов

Я только что протестировал несколько браузеров, используя этот глупый фрагмент JavaScript:

 function log_newline (msg, test_value) {if (! Test_value) {test_value = document.getElementById ('test ').ценность; } console.log (msg + ':' + (test_value.match (/ \ r /)? 'CR': '') + '' + (test_value.match (/ \ n /)? 'LF': '' )); } log_newline ('источник HTML'); log_newline ('строка JS', "foo \ nbar"); log_newline ('литерал шаблона JS', `bar baz`); 
  

IE8 и Opera 9 в Windows используют \ r \ n . Все другие протестированные мной браузеры (Safari 4 и Firefox 3.5 в Windows и Firefox 3.0 в Linux) используют \ n . Все они могут нормально обрабатывать \ n при установке значения, хотя IE и Opera снова преобразуют его обратно в \ r \ n внутренне. Есть статья SitePoint с более подробной информацией, которая называется Концы строк в Javascript .

Обратите внимание, что это не зависит от фактических окончаний строк в самом HTML-файле (как \ n , так и \ r \ n дают те же результаты).

При отправке формы все браузеры канонизируют символы новой строки в % 0D% 0A в кодировке URL. Чтобы увидеть это, загрузите, например, data: text / html,

и нажмите кнопку отправки. (Некоторые браузеры блокируют загрузку отправленной страницы, но вы можете видеть значения формы в кодировке URL в консоли.)

Однако я не думаю, что вам действительно нужно что-то делать. Если вы просто хотите разделить текст на новые строки, вы можете сделать что-то вроде этого:

lines = foo.value.split(/\r\n|\r|\n/g);
355
ответ дан 22 November 2019 в 23:33
поделиться

да, используйте \ n, если только вы не создаете html-код, в котором вы хотите использовать

24
ответ дан 22 November 2019 в 23:33
поделиться

Я думаю, что да - когда вы работаете со строками JS.

Если вы создаете HTML, вам придется использовать
теги (не \ n , поскольку вы больше не имеете дело с JS)

0
ответ дан 22 November 2019 в 23:33
поделиться

Они просто синтаксический сахар вокруг анонимные делегаты, или есть что-то еще, чего я не вижу?

Хороший вопрос. Ответ сложен. Во-первых, очевидно, что деревья выражений - самые большие. Но есть и тонкости. Вот пять моих многословных и часто отвлекающих статей о том, как лямбда-выражения тонко отличаются от анонимных методов:

http://blogs.msdn.com/ericlippert/archive/2007/01/10/lambda-expressions-vs -anonymous-methods-part-one.aspx

http://blogs.msdn.com/ericlippert/archive/2007/01/11/lambda-expressions-vs-anonymous-methods-part-two.aspx

http://blogs.msdn.com/ericlippert/archive/2007/01/12/lambda-expressions-vs-anonymous-methods-part-three.aspx

http://blogs.msdn.com/ericlippert /archive/2007/03/26/lambda-expressions-vs-anonymous-methods-part-four.aspx

http://blogs.msdn.

81
ответ дан 22 November 2019 в 23:33
поделиться

\ n подходит для всех случаев, с которыми я сталкивался. Если вы работаете с Интернетом, используйте \ n и не беспокойтесь об этом (если у вас нет проблем, связанных с переводом строки).

-3
ответ дан 22 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: