2013-07-17 2 views
0

JQuery find() заставляет весь мой браузер перестать работать.JQuery find метод зависает весь мой браузер

Линия, на которой мой браузер перестает работать это одна:

item.find('div:contains(\'' + myText + '\')').remove(); 

В частности, часть до удаления(), которая является находкой() часть.

Ниже приведены значения переменных:

myText: "Grand sauce()" 

item: e.fn.e.init[1] 
    0: a.ui-corner-all ui-state-hover 
     item[0].innerText: "Grand sauce...302774" 
     item[0].innerHTML: "<table style=" width: 100%; font-size:10px;" name="Grand sauce()"><tbody><tr><td id="column1" style="width:170px; padding:2px 2px 2px 8px;position: relative;">Grand sauce...302774</td><td style="width:50px; padding:2px;">302774</td><td style="width:70px; padding:2px;">Supp</td><td style="width:70px; padding:2px;"></td><td style="width:50px; padding:2px;">2.00</td><td style="width:80px; padding:2px;">93ml</td><td style="width:90px; padding:2px;"> € 1.35</td></tr></tbody></table>" 

Почему браузер зависает? ВнутреннийHTML не такой уж большой.

+0

Попробуйте 'item.find ('div: contains (' \ '+ myText +' \ ')'). Remove();' – Chad

+0

Я не вижу DIV в элементе. Не могли бы вы предоставить jsfiddle? –

+0

Можете ли вы рассказать нам, чего вы пытаетесь достичь? – acudars

ответ

1

Попробуйте вместо этого:

item.find('div').filter(function() { 
    return ($(this).text().indexOf(myText) != -1); 
}).remove(); 

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

2

Я думаю, что проблема заключается в ( и ) в myText. Вы можете избежать его должным образом или использовать фильтр:

item.find('div').filter(function(){ 
    return $(this).text().indexOf(myText) > -1; 
}).remove(); 

Попробуйте также можете попробовать это так:

$('div:contains("' + myText + '")').remove(); 

Вот демо: http://jsbin.com/ehuqux/2/edit

Errr, на самом деле, как вы писали работы также. Я думаю, что есть что-то еще с кодом.

+0

Теперь, когда вы упомянули об этом, вы, вероятно, правы. Я видел похожие проблемы с случайным отключением селектора, например '$ ('a [href = abcd')'. Это было много лет назад - я удивлен, что он еще не исправлен. – jnylen

+0

Я просто немного перепутал, и на самом деле все работает нормально. Я думаю, что это именно то, как это цитируется, что может быть связано с этим. Я уточню свой ответ. Вот демо, которое я использовал: http://jsbin.com/ehuqux/2/edit –

Смежные вопросы