JQuery, если метка содержит это ... сделать это - PullRequest
2 голосов
/ 09 сентября 2010

У меня есть ретранслятор asp.net на странице.Если каждый повторяющийся элемент обернут в метку, например, так:

<label class="ItemName">value</label>

Если эта метка содержит текст «35», я хочу отобразить текст рядом с ним.Как я могу сделать это с помощью jquery ???

    jQuery(document).ready(function () {
        if ($('.ItemName').val().indexOf("35")) {
            $(this).val() = $(this).val() + "some text";
        }
    });

Ответы [ 4 ]

5 голосов
/ 09 сентября 2010
  1. this в функции .ready должно относиться к document.
  2. Чтобы получить текстовое содержимое, используйте .text() вместо .val().
  3. Чтобы обновить какое-либо значение, используйте $obj.val(blah);, а не $obj.val() = blah;. (На самом деле это ограничение Javascript.)
  4. Имеется селектор :contains() для фильтрации элементов, содержащих некоторый текст.
  5. Чтобы добавить текст (или HTML), уже есть .append() метод (Спасибо @ J-P за напоминание об этом.)

Вместо этого вы можете захотеть:

$('.ItemName:contains(35)').append("some text");
1 голос
/ 09 сентября 2010

.text() должно работать:

var item = $('.ItemName');
if ( item.text().indexOf("35") > -1 ) {
    item.after("some text");
}
0 голосов
/ 09 сентября 2010

это вы имеете в виду?

jQuery(document).ready(function () {
        if ($('.ItemName').text().indexOf("35")) {
            $(this).text($(this).text() + "some text");
        }
    });
0 голосов
/ 09 сентября 2010

indexOf возвращает -1, если не найден, или индекс. Сделайте это:

if ($('.ItemName').val().indexOf("35") >= 0) {
...