2013-12-02 4 views
1

В приведенном ниже коде я хочу отредактировать его так, чтобы он удалял первую строку.Удаление/удаление первой строки из html при импорте данных из запроса ajax с использованием jquery?

function update(url,cln){ 
    $.ajax({ 
     url: url, 
     dataType: "HTML", 
     error: function(msg){ 
      alert(msg.statusText); 
      return msg; 
     }, 
     success: function(html){ 
      $("#main").html(html + '<a id="MAX"></a>'); 
     } 
    }); 
} 

Например, если код контактов URL: http://stackoverflow.com/
URL-адрес возвращается:

<link rel="stylesheet" type="text/css" href="style.css" media="screen" /> 
<div id="data"> 
    <div id="test"> 
    </div> 
</div> 

Было бы вырезать первую линию так, что, когда он пишет HTML в #main было бы только напишите:

<div id="data"> 
    <div id="test"> 
    </div> 
</div> 
+1

http://stackoverflow.com/questions/2528076/delete-a-line-of-text-in-javascript – eRIZ

ответ

4

Вы можете использовать регулярное выражение, соответствующее всем, начиная с начала Строка до первого разрыва строки:

html = html.replace(/^.*?\r?\n/, ''); 

Демо: http://jsfiddle.net/Guffa/7pdqw/

Объяснение регулярного выражения:

^ - matches the beginning of the string 
.*? - matches zero or more character, non-greedy 
\r? - matches zero or one carriage return character 
\n - matches a line feed character 
+0

Я положил, что регулярное выражение в regex101, чтобы попытаться выяснить, как это работает, но их описание не имеет никакого смысла, eRIZ в моих комментариях разместил ссылку, используя '.splice (0,1);' какой путь лучше, сплайсинг или регулярное выражение? Есть ли какие-либо преимущества или недостатки? – Ryflex

+1

@Hyflex: Я добавил объяснение регулярного выражения выше. Разделение строки в массив и объединение ее вместе не является эффективным способом удаления части строки. Если вы хотите использовать что-то другое, кроме обычного выражения, вы должны использовать строковые операции, чтобы найти разрыв строки и получить остальную часть строки, то есть 'html = html.substr (html.indexOf ('\ n'));' , – Guffa

2

Следующая отберет часть содержимого вам нужно

function update(url,cln){ 
    $.ajax({ 
     url: url, 
     dataType: "HTML", 
     error: function(msg){ 
      alert(msg.statusText); 
      return msg; 
     }, 
     success: function(html){ 
      $("#main").html($(html).find('#data').html() + '<a id="MAX"></a>'); 
     } 
    }); 
} 
0

Вы должны использовать .filter() или .load(). http://api.jquery.com/load

How do I filter the returned data from jQuery.ajax?

+0

Каковы основные отличия в использовании .filter или .load .html, все три будут работать, не так ли? – Ryflex

+0

@Hyflex На самом деле вам нужны '.html()' AND '.find()' или '.filter()', чтобы иметь одинаковую функциональность как '.load()'. – loveNoHate

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