【问题标题】:javascript to check if file extension is found in ULjavascript检查是否在UL中找到文件扩展名
【发布时间】:2022-12-01 05:57:24
【问题描述】:

我正在使用 javascript 检查是否在无序列表的项目中找到了 pdf 或 doc 扩展名。如果是,我想删除该元素。有没有一种简单的方法可以使这项工作。我可以检测到它是否在那里。它返回 true,但不确定如何选择该特定元素。

if (document.querySelector("#myList").innerHTML.includes(".pdf") || (".doc")) {
  //find and remove item

}
<div id="myList">
<div class="style">
  <img class="myIm" src="/v2l/le/1196xx/discussions/posts/26adsd89/ViewAttachment?fileId=273383625">
  <div class="">photoTest.jpg</div>
</div>
<div class="style">
  <img class="myImg-style" src="/v2l/le/11961xx/discussions/posts/26ss489/ViewAttachment?fileId=27773626">
  <div class="">dog.png</div>
</div>
<div class="style">
  <img class="myImg-style" src="/v2l/common/viewFile.v2lfile/Im/638054389092471030/testpde.pdf?ou=11961xxx&amp;fid=ZTZlMDllZGEtMWM0Yi00ZWRlLWI5ODAtMjhhNWRmYjc1MzBmO0dyYXBoaWNEZXNpZ25fT25saW5lX0NvdXJzZU91dGxpbmUucGRmOzU1ODY0MDE">
  <div class="">testpde.pdf</div>
</div>
</div>

【问题讨论】:

  • somestring.includes(".pdf") || (".doc") 是逻辑错误。建议使用正则结合:somestring.match(/\.(pdf|doc)/)
  • @amphetamachine 不。你有 RegExp.prototype..test() ,它确实返回一个布尔值。
  • 你在哪里“无序列表”

标签: javascript


【解决方案1】:
function hasExtOfList(src, list) {
   return list.some(ext => src.includes(ext))
}

hasExtOfList(
  document.querySelector("#myList").innerHTML,
  [".pdf", ".doc"]
)

JS 确实有 Set,但没有必要使用它,因为无论如何你都需要迭代,JS 中的所有内容都是有序的

【讨论】:

  • 所以这会返回具有 pdf 或 doc 扩展名的项目?
【解决方案2】:

您可以使用 Node.removeChild() 从 DOM 中删除元素

以下是有关如何操作的示例:

const el = document.querySelector("#myList");
el.parentElement.removeChild(el);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2013-02-27
    相关资源
    最近更新 更多