Jquery удалить ближайший сбой - PullRequest
0 голосов
/ 04 февраля 2011

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

Я не могу предположить, что там будет существовать класс span, потому что html получен с другой стороны, они могут изменить его, добавив, удалив любой класс в любое время.

Это нужно делать при загрузке страницы, а не при нажатии на событие class / id внутри.

Вроде вызов. Есть идеи как этого добиться?

На странице загрузки,

jquery, чтобы определить, существует ли на странице «Привет, как дела».

If exist
    remove the whole td or tr or table for this particular.
else
    do nothing.
end

Код как ниже:

function replaceText() 
{

    var debug;
    debug= "";


    $("*").each(function() { 
        if($(this).children().length==0) 
    { 
//            $(this).text($(this).text().replace('Hello how are you', 'yohoo')); 

        debug= debug + $(this).val() + "<br>";

        if($(this).val()=="Hello how are you")
        {
            $(this).closest('table').remove();
        }

        } 
    });

//alert(debug);

}


<div>


<table>

    <tr>

    <td colspan="2">


        <div>


            <table>

            <tr>

            <td ><span class="myclass">Hello how are you</span></td>

            <td><a href="testing.php"></a></td>

            </tr>

            </table>


        </div>


    </td>

    </tr>


    <tr colspan="2">
        <table>

        <tr>

        <td><b>want to remove this</b></td>

        </tr>

        </table>
    </tr>

    <tr>
        <td>other content 1</td>
        <td>other content 2</td>
    </tr>

</table>

</div>

1 Ответ

0 голосов
/ 04 февраля 2011

Вы можете использовать :contains, чтобы проверить, существует ли текст:

$(":contains('Hello how are you')").each(function(n){
    if ($(this).children().length == 0){
        $(this).closest('table').remove();
    }
});

Этот код будет перебирать все элементы, содержащие текст «Привет, как дела». Если вы хотите точное совпадение, вы также можете проверить $(this).text() == 'Hello how are you'. Как только он находит эти элементы, он проверяет, что у них нет дочерних элементов, а затем удаляет ближайшую таблицу, если они проходят это условие.

Чтобы запустить этот код при загрузке страницы, оберните его в функцию document.ready:

$(document).ready(function(){
  ...
});
...