Как вернуться к корневому тегу HTML с помощью jQuery или Javascript

0

Я хотел бы использовать td.ms-vb-title для того, чтобы получить текст 2,004, 2,005, 2,006 в классе ms-vb2 атрибуте.

Я пытался использовать prev() но это не сработало...

HTML:

<tbody>
        <tr iid="92,1,0" class="ms-itmhover" setedgeborder="true">
            <td class="ms-vb-itmcbx ms-vb-firstCell">
                <input type="checkbox" class="s4-itm-cbx"></td>
            <td class="ms-vb2"></td>
            <td height="100%" class="ms-vb-title" onmouseover="OnChildItem(this)" id="msomenuid2"></td>
            <td class="ms-vb2">
                <div align="right">2,004</div>
            </td>
            <td class="ms-vb2">
                <div align="right">1,000</div>
            </td>
            <td class="ms-vb2">
                <div align="right">400</div>
            </td>
            <td class="ms-vb2 ms-vb-lastCell">
                <div align="right">600</div>
            </td>
        </tr>
        <tr iid="92,2,0" class="ms-alternating ms-itmhover" setedgeborder="true">
            <td class="ms-vb-itmcbx ms-vb-firstCell">
                <input type="checkbox" class="s4-itm-cbx"></td>
            <td class="ms-vb2"></td>
            <td height="100%" class="ms-vb-title" onmouseover="OnChildItem(this)"></td>
            <td class="ms-vb2">
                <div align="right">2,005</div>
            </td>
            <td class="ms-vb2">
                <div align="right">1,170</div>
            </td>
            <td class="ms-vb2">
                <div align="right">460</div>
            </td>
            <td class="ms-vb2 ms-vb-lastCell">
                <div align="right">1,200</div>
            </td>
        </tr>
        <tr iid="92,3,0" class="ms-itmhover" setedgeborder="true">
            <td class="ms-vb-itmcbx ms-vb-firstCell">
                <input type="checkbox" class="s4-itm-cbx"></td>
            <td class="ms-vb2"></td>
            <td height="100%" class="ms-vb-title" onmouseover="OnChildItem(this)"></td>
            <td class="ms-vb2">
                <div align="right">2,006</div>
            </td>
            <td class="ms-vb2">
                <div align="right">660</div>
            </td>
            <td class="ms-vb2">
                <div align="right">1,120</div>
            </td>
            <td class="ms-vb2 ms-vb-lastCell">
                <div align="right">780</div>
            </td>
        </tr>
    </tbody>

Javascript:

var arrayList = $("td.ms-vb-title:contains('')");
            var a = $(arrayList).prev().eq(0).find("ms-vb2");
            alert(arrayList.length);
            alert(a.length);
            $.each(arrayList, function (i, e) {
                areaname[i] = $(e).text();
            });
  • 0
    Какой именно ОП вы хотите, когда наведите курсор мыши на событие класса "ms-vb-title"?
  • 0
    Я хочу получить текст 2,004 , 2,005 , 2,006 в ms-vb2 атрибута с использованием td.ms-vb-title .
Теги:

1 ответ

2
Лучший ответ

Вы должны использовать .closest()

Для каждого элемента в наборе получите первый элемент, который соответствует селектору, путем тестирования самого элемента и прохождения его предков в дереве DOM

Измените свой код на

 var a = $(arrayList).closest('tr').find(".ms-vb2");
  • 0
    Спасибо за ваш код. Если я хочу получить первый класс с именем ms-vb2 , я буду использовать var a = $(arrayList).closest()('tr').find(".ms-vb2").eq(0); Это правильно?
  • 1
    @ PMay1903: это будет правильно $(arrayList).closest('tr').find(".ms-vb2").eq(0);
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню