2012-02-08 212 views
6

也许这是非常基本的,但我都很困惑。 我有一个简单的HTML页面与许多部分(股利)。我有一个字符串包含javascript中的html标签。代码如下:如何使用javascript或jquery从字符串中提取html标记的内容?

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<script type="text/javascript"> 
var str1="<html><body><div id='item1'><h2>This is a heading1</h2><p>This is a paragraph1.</p></div><div id='item2'><h2>This is a heading2</h2><p>This is another paragraph.</p></div><div id='lastdiv'>last</div></body></html>"; 
</script> 
</head> 
<body> 
<div id="title1"></div> 
<div id="new1"></div> 
<div id="title2"></div> 
<div id="new2"></div> 
</body> 
</html> 

我想提取的HTML标签(从JavaScript中的字符串)的内容,并显示在我的html页面中所需的部分的内容。

即我要在<div id="title1">和“This is a paragraph1”中显示“This is a heading1”。在<div id="new1">中显示,对于第二对标签也是如此。

我需要所有这些只在客户端工作。我试图使用HTML DOM getElementByTagName方法,它变得太复杂了。我对jquery知之甚少。我很困惑。我不明白如何去做。你能指导我使用什么 - JavaScript或jQuery和如何使用它?有没有一种方法来识别字符串并遍历它?

如何从str1中提取“This is heading1”(以及包含在html标签中的类似内容)?我不知道这些索引,因此不能在javascript中使用substr()或substring()函数。

回答

9

使用.text()同时作为“吸气”和“二传手”我们只是重复的模式:

  • 目标,我们希望以填充页面上的元素
  • 给它的内容从 字符串

jsFiddle

<script type="text/javascript"> 
var str1="<html><body><div id='item1'><h2>This is a heading1</h2><p>This is a paragraph1.</p></div><div id='item2'><h2>This is a heading2</h2><p>This is another paragraph.</p></div><div id='lastdiv'>last</div></body></html>"; 
$(function(){ 
    var $str1 = $(str1);//this turns your string into real html 

    //target something, fill it with something from the string 
    $('#title1').text($str1.find('h2').eq(0).text()); 
    $('#new1').text($str1.find('p').eq(1).text()); 
    $('#title2').text($str1.find('h2').eq(1).text()); 
    $('#new2').text($str1.find('p').eq(1).text()); 
}) 
</script> 
+0

Thnks ..它的工作.. – user1196522 2012-02-08 09:41:17

1

嗯,

首先,你应该说明你是如何从你自己的html获得源html的。如果您使用的是Ajax,则应该将源代码标记为html,甚至是xml。

0

的document.getElementById( '{元件的ID}')的innerHTML

如果使用jQuery $( '选择')的HTML()。;

<div id="test">hilo</div> 
<script> 
alert($('#test').html()); 
<script> 
0

让我前言我与我不认为我完全明白你想要做什么......但是我觉得要替换一些(虽然你使它听起来像所有的)知识回答与一些数据源的HTML。

我操纵一个简单的例子是这里的jsfiddle:

http://jsfiddle.net/rS2Wt/9/

这确实一个简单的替换使用上的目标DIV jQuery的。

希望这会有所帮助,祝你好运。

2

恕我直言,您可以分两步做jQuery中:

步骤1)解析字符串转换成XML/HTML文档。

至少有两种方法可以做到这一点:

一)正如Sinetheta

var htmlString = "<html><div></div></html>"; 
var $htmlDoc = $(htmlString); 

b)使用parseXML

提到
var htmlString = "<html><div></div></html>"; 
var htmlDoc = $.parseXML(htmlString); 
var $htmlDoc = $(htmlDoc); 

请参阅http://api.jquery.com/jQuery.parseXML/

步骤2)选择t从XML/HTML文档中分支。

var text = $htmlDoc.text(jquery_selector); 

请参阅http://api.jquery.com/text/

相关问题