這個問題在這里已經有了答案: 是否有文本節點的 CSS 選擇器? (2 個回答) 8 小時前關閉。
<div class="class1">
this is string hi hi hi
<div class="class2">
hi
</div>
</div>
result: "this is string hi hi hi"
是否可以僅使用 css 選擇器提取不屬于標簽的字串?應排除 class2 中的內容。
uj5u.com熱心網友回復:
div在這種情況下放入原始文本并不是一個好方法。我建議您放置span或其他行內標簽,然后將您的字串放入其中,那么問題會變得容易得多。
如果你想在這種情況下只提取字串,你可以使用textContent屬性。
const class1 = document.getElementsByClassName('class1')[0]
const class2 = document.getElementsByClassName('class2')[0]
const text1 = class1.textContent
const text2 = class2.textContent
console.log(text1.substr(0, text1.lastIndexOf(text2)))
<div class="class1">
this is string hi hi hi
<div class="class2">
hi
</div>
</div>
uj5u.com熱心網友回復:
我想出了一個解決方案。您需要觸摸檔案,但它實際上不會影響檔案,因為我在這里所做的將在后端完成。
let newElementStr = class1.innerHTML;//Get the content of Class 1 including Class 2
//Create a duplicate of Class 1 Element and hide it.
let newElement = document.createElement('div');
newElement.style.display = 'none';
newElement.innerHTML = newElementStr;
newElement.id = 'new-el';
//Remove the Class 2 Element
let class2Element = document.querySelector('#new-el .class2');
document.remove(class2Element);
let content = newElement.innerHTML;//This is the string you want
document.remove(newElement);//Cleaning up
您無需擔心觸摸檔案,因為此代碼所做的所有更改都不會影響檔案,因為它們是隱藏的 display: none;
希望對你有幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/406948.html
標籤:
