我有一个非常大的HTML,其中包含许多同名的div
,我想要一种仅从该div
过滤或提取该值的方法。
这里是一个例子:
<td class="last">
<div class="container-relative">
<div class="name" title=""User" <John Appleseed>"></div>
<div class="date">9/17/2019</div>
<div class="tool"></div>
</div>
</td>
我只需要提取<John Appleseed>
之间的内容,在这种情况下就是“约翰·苹果种子”。
答案 0 :(得分:3)
您可以使用querySelectorAll
来获取类name
的所有元素,然后使用getAttribute
获得title
属性,最后使用正则表达式来匹配之间的文本<>
。
document.querySelectorAll('.name').forEach(item => {
let title = item.getAttribute('title');
console.log(title.match(/\<.*\>/));
});
<td class="last">
<div class="container-relative">
<div class="name" title=""User" <John Appleseed>"></div>
<div class="date">9/17/2019</div>
<div class="tool"></div>
</div>
</td>
答案 1 :(得分:0)
var divs=[];
for(i=0,j=0,obj=document.getElementsByClassName("name");i<obj.length;i++)
if(obj[i].title.includes("John Appleseed") &&
/* obj[i].title.split("\"")[2].trim()=="<John Appleseed>" && */
obj[i].tagName.toLowerCase()=="div"){
divs[j++]=obj[i];
}
console.log(divs);
答案 2 :(得分:-3)
使用div ID分隔div。然后使用该ID值获取各自的div。然后在javascript中可以使用getElementByID。
答案 3 :(得分:-4)
您可以使用Xpath
.//div[contains(@class, 'Test')]
然后从中提取所需的文本。