首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用jQuery清空除特定元素之外的所有内容的最佳方法?

使用jQuery清空除特定元素之外的所有内容的最佳方法?
EN

Stack Overflow用户
提问于 2019-06-05 13:13:45
回答 2查看 70关注 0票数 0

考虑:

代码语言:javascript
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td>Foo</td>
      <td>
        <p>
          <span><input type="checkbox" disabled="disabled" checked="checked">1 </span>
          <span><input type="checkbox" disabled="disabled"> 2</span>
          <span><input type="checkbox" disabled="disabled"> 3</span>
        </p>
      </td>
    </tr>
    <tr>
      <td>Bar</td>
      <td>
        <p>
          <span><input type="checkbox" disabled="disabled" checked="checked"> A</span>
          <input type="checkbox" disabled="disabled"> B
        </p>
      </td>
  </tbody>
</table>

使用jQuery,如何只保留具有属性checkedinput<span>?基本上,最后,我只需要以下HTML:

代码语言:javascript
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td>Foo</td>
      <td>
        <p>
          <span><input type="checkbox" disabled="disabled" checked="checked">1 </span>
        </p>
      </td>
    </tr>
    <tr>
      <td>Bar</td>
      <td>
        <p>
          <span><input type="checkbox" disabled="disabled" checked="checked"> A</span>
        </p>
      </td>
  </tbody>
</table>

请注意,出于某种原因,B for Bar无意包装在<span>上(我没有编写<span>)。另外,假设检查的输入始终在<span>中。

最后,我需要一个没有(匿名)函数的单行jQuery命令,因为我使用的工具只支持一行jQuery语句。我最终只想提取这个HTML的.text(),因此我想删除其各自输入未被选中的文本。

我得到的最接近的是$("table").find("p:has(input)").contents().not("span:has(input:not(:checked))").remove().end().html() (不起作用)

EN

回答 2

Stack Overflow用户

发布于 2019-06-05 13:27:24

一号线??那可能是不可能的,

代码语言:javascript
运行
AI代码解释
复制
$(document).ready(function(){

  $("table tr td p").each(function(){
  
    var html = "";
    $(this).find('span').each(function(){
      if($(this).has('input[checked="checked"]').length){
        html += '<span>'+$(this).html()+'</span>';
      }
    });
    $(this).html(html);
    
  });

});
代码语言:javascript
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td>Foo</td>
      <td>
        <p>
          <span><input type="checkbox" disabled="disabled" checked="checked">1 </span>
          <span><input type="checkbox" disabled="disabled"> 2</span>
          <span><input type="checkbox" disabled="disabled"> 3</span>
        </p>
      </td>
    </tr>
    <tr>
      <td>Bar</td>
      <td>
        <p>
          <span><input type="checkbox" disabled="disabled" checked="checked"> A</span>
          <input type="checkbox" disabled="disabled"> B
        </p>
      </td>
  </tbody>
</table>

票数 0
EN

Stack Overflow用户

发布于 2019-06-05 13:32:54

一个更新的答案,用于尝试和处理未包装在<span>中的输入。

代码语言:javascript
运行
AI代码解释
复制
// Finds all checked input
var $targets = $('body').find('input:checked');

// Loop over each input
$($targets).each(function(){

    // If the parent isn't a span, then false
    var parent_span = ($(this).parent().is('span')) ? $(this).parent() : false;

    // If parent span is not false, empty the closest p and append the span, otherwise remove spans from parent p
    (parent_span !== false) ? $(this).closest('p').empty().append(parent_span) : $(this).closest('p').find('span').remove();

})

但是,如果您向容器中添加了另一个未包装在<span>中的输入,则这将分崩离析。我知道您说过HTML是这样的,但理想情况下它是一致的。

这是一个更新的jsfiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56468100

复制
相关文章
无法加载 DLL xpstar.dll 或它引用的一个 DLL。原因: 126(找不到指定的模块。)。
需要复制数据库文件,把SQL服务停了,不使用脱机或者分离是觉得比较慢,结果就是再次重启服务后,SQL开始报错:
_一级菜鸟
2020/08/02
2.3K0
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
最近在师姐机器上跑实验的时候,想利用matplotlib包来绘制损失曲线图,安装过程中碰到了一些小麻烦,感觉之前好像也碰到过类似的问题,网上一搜什么numpy、matplotlib、pillow包版本冲突啊,然后就是各种尝试,直至重装Anaconda,当时特头疼,最后无意中解决了,今天又碰到了类似的问题,这次记录下来防止忘记
全栈程序员站长
2022/09/14
6.8K1
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
[754]ImportError: DLL load failed: 找不到指定的模块
在tensorflow的学习中,想使用tensorflow-gpu版的学习,充分利用计算机。但是跟网上很多博主的方法安装gpu,cuda是安装成功了,但是却一直报以下一个错误。
周小董
2020/02/14
14.8K0
[754]ImportError: DLL load failed: 找不到指定的模块
安装tensorflow时候报错ImportError: DLL load failed: 找不到指定的模块。Failed to load the native TensorFlow runtime.
解决方法:降低tensorflow版本,版本太高。在terminal复制粘贴以下命令:
川川菜鸟
2021/10/18
1.4K0
找不到mfc110.dll,无法执行代码
运行完直接即可进行下载,安装后解决对应的所有问题。 傻瓜式安装,自动安装到C:\Windows\System32下。 comct232.ocx 6.0.98.39 comct332.ocx 6.7
红目香薰
2022/11/30
8730
找不到mfc110.dll,无法执行代码
Pycharm中无法导入(import)自己写的模块或脚本
问题描述:我在code文件夹下编写了translate.py 和 test.py两个脚本文件。想在test.py中import translate.py的一个函数,发现却不行。 image.png 解
Aidol
2020/07/23
3.8K0
Pycharm中无法导入(import)自己写的模块或脚本
MICROSOFT REPORT VIEWER 2012之无法加载相关的dll
使用VS 2012开发报表, 如果是使用的微软的报表控件的话,默认是使用的MICROSOFT REPORT VIEWER 2012,本地开发基本上没问题,但是一发布服务器,就会发现坑了,微软挖坑从来就不打招呼,坑你没商量。
雪雁-心莱科技
2018/12/27
9160
pycharm中安装模块_pycharm怎么下载模块
4.接着搜索matplotlib它会自动搜索,然后点击左下角安装,然后退出就可以了
全栈程序员站长
2022/09/27
1.3K0
pycharm中安装模块_pycharm怎么下载模块
错误: 找不到或无法加载主类(java)
很多刚学java的同学基本上都遇到过这个问题,刚才我刚了一下idea中入口雷类的包的地址,就出现这个了。原因很简单,在此特做记录,希望能帮助到点开这个文章,遇到错误的你。
手撕代码八百里
2020/07/28
5.1K0
java提示找不到或无法加载主类
背景 默许jdk的配置大家都没有问题,执行java,javac无报错,但今天在尝试在本地起来kafka的时候,提示java 找不到或无法加载主类,然后日志中提示 Files 找不到或无法加载主类;C:
千往
2018/01/24
1.9K0
java提示找不到或无法加载主类
SignalR 在IE中无法工作 - Internet Explorer
运行基于SignalR的超线程上载器的代码,发现SignalR 在IE 9上居然没法工作了,提示如下: 提示很明显,需要json2.js的支持。 使用Nuget 搜索json2.js 并安装: 在引用
张善友
2018/01/29
3.4K0
SignalR 在IE中无法工作 - Internet Explorer
模块***已加载但找不到入口点DllRegisterServer,请确保***为有效的DLL或OCX文件,然后重试[通俗易懂]
声明一下,本帖子是记录本人解决问题得步骤,并不一定适合所有人,你们能找到这个博文,其他人得估计也试过了不行,没必要回帖喷我,另外360里面有dll修复,网上也大把得修复工具,这个只是手动修复了我自己遇到得问题。
全栈程序员站长
2022/09/14
4.3K0
模块***已加载但找不到入口点DllRegisterServer,请确保***为有效的DLL或OCX文件,然后重试[通俗易懂]
pycharm import cv2找不到指定模块_pycharm显示主菜单
首先,我们是要导入opencv(cv2)包,那么这个包是不是必须就在我们pycharm的这个文件夹下面才行?我认为必须是这样。
全栈程序员站长
2022/09/27
1.2K0
pycharm下找不到要安装的模块包(如sqlalchemy)[通俗易懂]
2.选择Project Interpreter,点击右边绿色的加号添加包
全栈程序员站长
2022/09/27
3.3K0
pycharm下找不到要安装的模块包(如sqlalchemy)[通俗易懂]
模块已加载,但找不到入口点DLLRegisterServer[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说模块已加载,但找不到入口点DLLRegisterServer[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/08/01
52.8K1
模块已加载,但找不到入口点DLLRegisterServer[通俗易懂]
Windows 下的 WPF 开发 调试应用程序在什么时机加载了 Dll 模块
在尝试优化性能的时候,如何可以了解到在应用程序启动的过程中,在什么步骤开始加载了某些 Dll 文件
林德熙
2021/04/13
6210
pycharm添加anaconda解释器_anaconda找不到指定模块
PyCharm使用anaconda新建环境是只包含一些基础包,后续如果想要如Scrapy.requests等库的话则需要自己在解释器页面添加了(ctrl+alt+s进入解释器设置页面)
全栈程序员站长
2022/09/27
2.2K0
pycharm添加anaconda解释器_anaconda找不到指定模块
[记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题
本文将通过一个经典的 “tensorflow找不到dll” 问题来入手,给大家一个如何找到缺失dll的办法,进而再分享一个windows上排查问题的好工具(因为大多开发者在windows上开发&在linux上部署,windows还是绕不过)。
罗西的思考
2020/09/21
2.1K0
IDEA 出现错误:找不到或无法加载主类
解决方法: idea本身缓存问题 解决:清理缓存重启IDEA file-->invalidate Cache/restart 解决方法二: 在这里设置自己的java文件的目录位置
孙晨c
2019/09/10
6.7K1
IDEA 出现错误:找不到或无法加载主类
点击加载更多

相似问题

使用jquery按数据属性选择元素

53

使用jQuery按数据属性选择元素

110

更改后按数据属性选择元素

11

按属性选择元素

170

在CSS中按数据*属性选择元素

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文