2014-09-02 4 views
0

Это мой первый вопрос здесь.jQuery/HTML Соответствующий текст div

Как использовать регулярное выражение (или любой другой лучший метод) для соответствия div A с div B (оба имеют одинаковый текст) на основе текста внутри них, а затем удалить совпадающий div B?

Пример HTML ::

<div class="A"> Hello </div> 
<div class="B"> Hello </div> 
<div class="C"> Bye </div> 
......... and so on. 
+0

Какая здесь большая проблема? Вы пытаетесь удалить последовательные div с одним и тем же контентом? – j08691

+0

Шихары - это плохая идея разобрать html с регулярным выражением, вместо этого вы должны использовать синтаксический анализатор html. –

+0

Нет. Разделители могут находиться где угодно на странице. Я просто хочу сопоставить 1-й вид div с другим на странице (на основе текста), а затем удалить второй. –

ответ

0
var divA = $(".A").text(); //gives you text inside i.e. Hello 
var divB = new RegExp($(".B").text()); //gives you text inside i.e. Hello 

//for matching 
if(divA.test(divB)) //returns true if matched 
    $(".B").remove();//for deleting div B 
-1

Я написал на кнопку мыши. Просто попробуйте

<div class="A">Hello </div> 
<div class="B">Hello </div> 
<div class="C">Bye </div> 
<input type="button" value="click" id="btn" /> 

$('#btn').click(function() { 
     if ($('.A').text() == $('.B').text()) 
     { 
      $(".A").remove(); 
     } 
    }); 
1

Есть много способов сделать это, один способ это сделать, если поиск

(function(){ 
    var lookup = {}; //store text here 
    $("div").each(function() { //loop through the elements 
     var elem = $(this); //reference to current 
     var txt = $.trim(elem.text()); //get its text 
     if (lookup[txt]) { //if we have had this text already, remove the element 
      elem.remove(); 
     } else { 
      lookup[txt] = true; //set the key in the lookup 
     } 
    }); 
}()); 

JSFiddle

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