javascript - Jquery - 逻辑不应影响特定 ID
问题描述
在 HTML/JS 下面用于将 h2 更改为 h3 的逻辑。
但是,它不应该影响“testelement”DIV ID 中的 H2。
某些此脚本未按预期工作的方式。请让我知道如何解决这个问题?
谢谢
if($('#testelement').length){
$('body').find('h2').replaceWith(function() {
return '<h3>' + $(this).text() + '</h3>';
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="testelement">
<h1>Headline 1</h1>
<h2>Headline 2</h2>
<h3>Headline 3</h3>
</div>
<h1>Test Headline 1</h1>
<h2>Headline 2</h2>
解决方案
只需指出您不想受到影响的元素。
.not('#testelement h2')
: not()选择器选择除指定元素之外的所有元素。
if($('#testelement').length){
$('body').find('h2').not('#testelement h2').replaceWith(function() {
return '<h3>' + $(this).text() + '</h3>';
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="testelement">
<h1>Headline 1</h1>
<h2>Headline 2</h2>
<h3>Headline 3</h3>
</div>
<h1>Test Headline 1</h1>
<h2>Headline 2</h2>
推荐阅读
- java - 将 8bit 灰度图像字节数组转换为 BufferedImage
- javascript - 如何在 typescript 中为 MIME 类型应用程序/pdf 生成或创建数据 url
- javascript - 重定向到另一个页面后如何显示反应通知?
- audio - .aac 和 .m4a 文件中的音频数据在字节级别上的区别
- google-api - YouTube Live Streaming API Snippet.scheduledStartTime 在创建直播时不起作用
- cassandra - 将时间写入日期时间格式。
- mapbox - HexagonLayer - 获取聚合数据或其值范围
- excel - SUMPRODUCT公式中的逻辑评估问题
- asp.net-core - 为什么我在看 JSON,而不是我漂亮的 Swagger UI?
- ssh - 将从远程服务器导出的转储发送到电子邮件