Как получить текст элемента, как это с помощью jquery? - PullRequest
0 голосов
/ 28 октября 2011

есть фрагменты html-кодов, подобных этому <label for=name>fill in your name<span>*</span></label>, при использовании jquery $("label[for='name']").text() он возвращает «заполните ваше имя *», как можно получить точно «заполнить ваше имя»?

Ответы [ 2 ]

1 голос
/ 28 октября 2011

contents() позволяет выбрать все типы узлов, включая только текстовые узлы. Например, это вернет текст для первого текстового узла элемента:

$("label[for='name']").contents().eq(0).text();

Рабочая демоверсия: http://jsfiddle.net/mX8zK/

1 голос
/ 28 октября 2011

Я бы посоветовал вам не ставить <span>*</span> и вместо этого использовать псевдоэлементы (:after). Таким образом, вы можете легко получить лучшие результаты.

См. Этот ПРИМЕР .

Обратите внимание на чистую разметку:

<label for="name" class=required>Fill in your Name</label>

Каждая метка .required будет иметь звезду по умолчанию благодаря псевдоэлементу :after, который применяется к ней:

label.required:after {
    content: '*';
}

Важное примечание: Упомянутое решение не будет работать в IE7 и ниже, так как они не поддерживают псевдоэлементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...