Разбор конкретных тегов HTML в Javascript - PullRequest
2 голосов
/ 24 октября 2011

Я ищу Javascript для анализа следующего HTML:

<p>random text random text random text random text</p>
<kbd><h2>Heading One</h2>Body text Body text Body text Body text</kbd>
<p>random text random text random text random text</p>

... и возврата просто:

Heading One

Другими словами, я хотел быуберите все теги и основной текст из тегов <kbd>.

Буду признателен за любые идеи!

Ответы [ 3 ]

2 голосов
/ 24 октября 2011
var input = /* that HTML string here */;
var div = document.createElement('div');

div.innerHTML = input;

var h2 = div.getElementsByTagName('h2')[0];
var text = h2.innerText || h2.textContent;

alert(text); // alerts "Heading One"

Ссылка:

Демонстрация:

2 голосов
/ 29 января 2015

Regex?

var s = "<p>random text</p>\n" +
  "<kbd><h2>Heading One</h2>Body text</kbd>\n" +
  "<p>random text</p>";

s.match(/<h2>(.*?)<\/h2>/)[1] // == "Heading One"

Это соответствует первой группе как самая короткая строка (.*?) между <h2>...</h2>.

Вы можете найти все совпадения, используя опцию g.

s.match(/<h2>(.*?)<\/h2>/g) // == ["<h2>Heading One</h2>"]

Обратите внимание, что группы недоступны.

Для многострочного контента между тегами используйте

s.match(/<tag>[\s\S]*?<\/tag>/ig)
0 голосов
/ 24 октября 2011

если вы включаете jquery ( jquery.com ), вы можете сделать это:

var heading=$("h2").html();
...