如何使用js方法将<p>333</p> 里面的333提取出来
时间: 2023-05-31 21:07:34 浏览: 60
您可以使用正则表达式来提取<p>标签里面的内容,代码如下:
```javascript
const str = '<p>333</p>';
const match = str.match(/<p>(.*?)<\/p>/);
if (match) {
console.log(match[1]); // 输出:333
}
```
上面的代码中,match[0] 表示匹配到的整个字符串,而 match[1] 则表示匹配到的第一个括号内的内容,即 <p> 和 </p> 之间的内容。可能需要注意的是,正则表达式使用了非贪婪模式,即 `.*?`,这样可以确保匹配到第一个闭合标签。
相关问题
请优化这段代码:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>下拉菜单</title> <style type="text/css"> .nav { margin: 100px; } .nav>li { position: relative; float: left; width: 80px; height: 41px; text-align: center; } .nav li a { display: block; width: 100%; height: 100%; line-height: 41px; color: #333; } /* .nav>li ul{ display: none; position: absolute; top: 20px; right: 21px; } */ </style> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> </head> <body> <!-- p181 --> <ul calss="nav"> <li><a href="#">微博</a> <ul> <li><a href="#">私信</a></li> <li><a href="#">评论</a></li> <li><a href="#">@我</a></li> </ul> </li> <li><a href="#">留言板</a> <ul> <li><a href="#">私信</a></li> <li><a href="#">评论</a></li> <li><a href="#">@我</a></li> </ul> </li> <li><a href="#">电话</a> <ul> <li><a href="#">私信</a></li> <li><a href="#">评论</a></li> <li><a href="#">@我</a></li> </ul> </li> <li><a href="#">邮箱</a> <ul> <li><a href="#">私信</a></li> <li><a href="#">评论</a></li> <li><a href="#">@我</a></li> </ul> </li> </ul> <script type="text/javascript"> $(".nav>li").mouseover( function() { $(this).children("ul").show(); } ); $(".nav>li").mouseout( function() { $(this).children("ul").hide(); } ); </script> </body> </html>
这段代码可以进行以下优化:
1. 将 `ul` 标签的 `class` 属性名从 `calss` 改为 `class`。
2. 将 JavaScript 代码放在 HTML 结构后面,以确保 DOM 树已经加载完毕。
3. 使用 CSS 的 `display` 属性代替 JavaScript 控制下拉菜单的显示和隐藏。
4. 为了提高代码的可维护性,可以将 JS 代码中的 `$(".nav>li")` 提取出来作为变量。
下面是优化后的代码:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>下拉菜单</title>
<style type="text/css">
.nav {
margin: 100px;
}
.nav>li {
position: relative;
float: left;
width: 80px;
height: 41px;
text-align: center;
}
.nav li a {
display: block;
width: 100%;
height: 100%;
line-height: 41px;
color: #333;
}
/* 隐藏下拉菜单 */
.nav ul {
display: none;
position: absolute;
top: 41px;
left: 0;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
$(function() {
var navLi = $(".nav>li");
// 鼠标移入显示下拉菜单
navLi.mouseover(function() {
$(this).children("ul").show();
});
// 鼠标移出隐藏下拉菜单
navLi.mouseout(function() {
$(this).children("ul").hide();
});
});
</script>
</head>
<body>
<!-- p181 -->
<ul class="nav">
<li><a href="#">微博</a>
<ul>
<li><a href="#">私信</a></li>
<li><a href="#">评论</a></li>
<li><a href="#">@我</a></li>
</ul>
</li>
<li><a href="#">留言板</a>
<ul>
<li><a href="#">私信</a></li>
<li><a href="#">评论</a></li>
<li><a href="#">@我</a></li>
</ul>
</li>
<li><a href="#">电话</a>
<ul>
<li><a href="#">私信</a></li>
<li><a href="#">评论</a></li>
<li><a href="#">@我</a></li>
</ul>
</li>
<li><a href="#">邮箱</a>
<ul>
<li><a href="#">私信</a></li>
<li><a href="#">评论</a></li>
<li><a href="#">@我</a></li>
</ul>
</li>
</ul>
</body>
</html>
```
取出网页中所有类似<div class="contentItem"><img src="/Areas/exercise/images/icon.png" alt="" class="itemImg"><a class="itemText" href="javascript:void(0)" onclick="OpenVideoPlay('d4106277-4eac-425d-b8da-26fb92447163','',2,0)"><p class="itemTitle"><img src="/Areas/exercise/images/xx.png" alt="" class="item_img">基本职能</p><p class="itemUserMessage"><span class="name">老浩</span><span class="address ellipsis">丰台区</span></p></a><div class="type"><p class="finish">已完成</p><div class="praise"><a target="_blank" href="/Exercise/ExerciseExam/HomeWorkIndex?learn_courseware_id=d4106277-4eac-425d-b8da-26fb92447163"><img src="/Areas/exercise/images/khzyh.png" alt="" class="praise_img"></a></div></div></div>这种元素list里面d4106277-4eac-425d-b8da-26fb92447163的值,用js
你可以使用 JavaScript 中的 DOM 操作方法来获取网页中所有类似 `<div class="contentItem">` 的元素,并提取其中 `d4106277-4eac-425d-b8da-26fb92447163` 的值。以下是一个示例代码:
```javascript
// 获取所有符合条件的元素
var elements = document.querySelectorAll('div.contentItem');
// 遍历元素列表
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
// 提取所需的值
var link = element.querySelector('a.itemText');
var onclickValue = link.getAttribute('onclick');
// 解析 onclick 属性值,提取目标值
var regex = /OpenVideoPlay\('([^']+)'/;
var match = onclickValue.match(regex);
if (match) {
var value = match[1];
console.log(value);
// 在这里可以对提取到的值进行操作
}
}
```
这段代码首先使用 `document.querySelectorAll` 方法获取所有具有类名为 `contentItem` 的 `<div>` 元素。然后,使用循环遍历这些元素,并在每个元素中查找包含目标值的属性。最后,使用正则表达式提取目标值,并进行处理。
请注意,这段代码应该在网页加载完成后执行,或者将其放在 `<script>` 标签中,并确保代码执行顺序正确。