怎么用JS获取HTML标签内的内容

html-css010

怎么用JS获取HTML标签内的内容,第1张

1、首先打开hbuilder软件,新建一个html文件,里面写入一个p标签和一个按钮标签。

2、然后在p标签的下方设置一个script标签,里面写入js胆码;先获取p标签和按钮的dom对象,然后给按钮添加一个点击事件,再点击事件爱的回调中alertp标签的text属性即可。

3、最后打开浏览器,可以看到一段文字和一个按钮,点击这个按钮。

4、就可以弹出内容了。

假设我们要获取下面html标签中的内容:

第一段是获取 <p></p>标签内部的数据,第二个是获取 <p><span></span></p>标签中的数据,其中span标签中有style属性值。

使用过正则表达式的同学肯定知道,上面两种情况其实都是一种情况,我们要获取的是 尖括号括起来的一对标签 中间的数据,起始标签形如<x>,结束标签形如</x>,这里的x表示的html标签。

此外,我们还需要考虑起始标签中包含style的数据,另外特殊的 <br/>标签,对实际获取数据无意义,也需要过滤掉。

通过上面的分析,我们可以如下正则表达式:

在使用正则表达式处理之前,我们先对数据进行预处理,比如style和

标签:

针对多个标签嵌套的情况进行处理,比如 <p><span style="white-space: normal">王者荣耀</span></p>,在经过预处理和正则匹配的后结果是 <span>王者荣耀 ,需要手工移除掉前面的起始标签,对应的方法如下:

测试方法如下:

output:

功能: 从文件中提取HTML标签

* 入口:

* $filename 文件名

* $tag 标签名

* 返回数组,每项为:

* tagName String

* Text String

* Attrs Array

*

* 示例:

* print_r(tags(“test1.htm“,“a“))

* print_r(“http://localhost/index.htm“,“img“)

*/

function tags($filename,$tag) {

$buffer = join(““,file($filename))

$buffer = eregi_replace(“\r\n“,““,$buffer)

$tagkey = sql_regcase($tag)

$buffer = eregi_replace(“〈$tagkey “,“\n〈$tag “,$buffer)

$ar = split(“\n“,$buffer)

foreach($ar as $v) {

if(! eregi(“〈$tagkey “,$v)) continue

eregi(“〈$tagkey ([^〉]*)((.*)〈/$tagkey)?“,$v,$regs)

$p[tagName] = strtoupper($tag)

if($regs[3])

$p[Text] = $regs[3]

$s = trim(eregi_replace(“[ \t]+“,“ “,$regs[1])).“ “

$s = eregi_replace(“ *= *“,“=“,$s)

$a = split(“ “,$s)

for($i=0$i〈count($a)$i++) {

$ch = array()

if(eregi(“=[\“’]“,$a[$i])) {

$j = $i+1

while(!eregi(“[\“’]$“,$a[$i])) {

$a[$i] .= “ “.$a[$j]

unset($a[$j])

}

}

}

foreach($a as $k) {

$name = strtoupper(strtok($k,“=“))

$value = strtok(“\0“)

if(eregi(“^[\“’]“,$value))

$value = substr($value,1,-1)

if($name)

$p[Attrs][$name] = $value

}

$pp[] = $p

}

return $pp

}

?〉