Получить все фрагменты текста курсивом на странице в jQuery и / или JavaScript - PullRequest
1 голос
/ 28 декабря 2011

Я хочу запустить скрипт на странице, который помещает каждый фрагмент текста, выделенный курсивом, в массив.

Насколько я понимаю, jQuery .find() вы не можете получить предметы по атрибутам, я прав?

1 Ответ

3 голосов
/ 28 декабря 2011
  • Вам следует ознакомиться с методом filter(), который является отличной функцией jQuery. Вы можете определить функцию фильтра, которую вы можете использовать для уменьшения элементов в вашей коллекции jQuery до тех, которые соответствуют вашим потребностям.

  • Вам также необходимо использовать .map(), который является еще одним очень удобным методом, который может помочь вам создавать списки из ваших коллекций jQuery, определенных функцией, которую вы пишете. Используя .get(), вы можете создать простой массив Javascript из этого объекта списка jQuery.

Это базовая версия, которая будет собирать текстовое содержимое элементов, к которым применен font-style: italic:

var arr = 
    $('*') /*look at all elements*/
        .filter(function () { /*filter these elements*/
            return $(this).css('font-style') == 'italic'; /*only keep the italic*/
        })
        .map(function () { /*create a new object using these elements*/
            return $(this).text(); /*store the text of each selected element*/
        })
        .get(); /*convert this to an array*/

jsFiddle Demo

...