javascript - 如何使用 JavaScript 从 HTML 数据中查找后跟特定字符串的元素并发出警报

标签 javascript

我有一些HTML变量上的数据,我需要找到特定的 HTML元素后跟一些字符串。

这是我的代码 JavaScript

var complexArray = "<li>some content</li><li>Application Begin</li>"
var data = complexArray.querySelectorAll('li').text('Application Begin').parentElement;

alert (data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

我的预期输出是:<li>Application Begin</li>

最佳答案

您有一些问题。您无法像现在这样在字符串上运行 DOM 方法。您首先需要将字符串解析为 DOM 元素。为了将其解析为 DOM 元素,您的字符串首先需要是有效的 HTML,这意味着它需要包装在 <ul> 中。 (或 <ol> )标签(因为 <li> 标签不能是独立的)。您可以使用 DOMParser 来执行此操作:

var complexArray = "<li>some content</li><li>Application Begin</li>"
var doc = new DOMParser().parseFromString(`<ul>${complexArray}</ul>`, "text/xml");

现在doc代表你的 DOM 元素,你可以使用 DOM 方法,例如 querySelectorAll()

使用查询选择器时,您也无法查询文本,但是,您可以使用 .find()从找到的查询结果中获取特定元素:

var complexArray = "<li>some content</li><li>Application Begin</li>";
var doc = new DOMParser().parseFromString(`<ul>${complexArray}</ul>`, "text/xml");

var data = [...doc.querySelectorAll('li')].find(({textContent:t}) => 
             t === "Application Begin"
           );

console.log(data.outerHTML);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

或者,如果您想检查您的字符串内容是否包含您的搜索字符串,您可以使用 .includes :

var complexArray = "<ul><li>some content</li><li>Application Begin <b>30/07/2017</b></li></ul>";
var doc = new DOMParser().parseFromString(complexArray, "text/xml");

var data = [...doc.querySelectorAll('li')].find(({textContent:t}) => 
             t.includes("Application Begin")
           );

console.log(data.outerHTML);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

关于javascript - 如何使用 JavaScript 从 HTML 数据中查找后跟特定字符串的元素并发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56824540/

相关文章:

javascript - 生成 JavaScript 来制作下拉菜单

javascript - 导出链式 promise 的返回值

javascript - 如何显示图像并在 5 秒后隐藏它?

javascript - 使用 JS 根据查询字符串的值删除部分查询字符串,无需重新加载页面

javascript - 访问数组内的对象

javascript - parent.document.getElementById ("...") 在 IE7 中为空或不是对象

javascript - 为什么 Javascript `if...else if` 不以 `else` 结尾?

javascript - 如何维护 socket.io + node.js 中的当前事件套接字?

javascript - 即时替换 Javascript

iframe 中的 Javascript 警报框