3 回答

TA貢獻1906條經驗 獲得超10個贊
你可以做:
document
.querySelectorAll('#pColors p')
.forEach(p => {
const len = p.innerText.length - 1
p.innerHTML = `${p.innerText.slice(0, len)} <span class="red">${p.innerText[len]}</span>`
})
.red { color: red; }
<section id="pColors">
<h1>Name</h1>
<p>John</p>
<p>Jacques</p>
<p>Peter</p>
<p>Robert</p>
</section>

TA貢獻1801條經驗 獲得超16個贊
這樣的事情應該工作:
document.querySelectorAll('p').forEach(el => {
const prefix = el.innerText.substr(0, el.innerText.length - 1);
const suffix = el.innerText.substr(el.innerText.length - 1);
el.innerHTML = `${prefix}<span class="colored">${suffix}</span>`;
})
使用document.querySelectorAll我們選擇<p>頁面上的所有標簽。然后我們循環(huán)NodeList使用 using NodeList#forEach。對于每次迭代,我們挑選出除最后一個字符之外的所有字符,然后挑選出最后一個字符。最后,我們innerHTML使用模板字符串重構元素的內容,并將單個字符包裝在<span>.
此代碼假設您的 CSS 如下所示:
.colored {
color: red;
}
document.querySelectorAll('p').forEach(el => {
const prefix = el.innerText.substr(0, el.innerText.length - 1);
const suffix = el.innerText.substr(el.innerText.length - 1);
el.innerHTML = `${prefix}<span class="colored">${suffix}</span>`;
})
.colored {
color: red;
}
<section>
<h1>Name</h1>
<p>John</p>
<p>Jacques</p>
<p>Peter</p>
<p>Robert</p>
</section>

TA貢獻1906條經驗 獲得超3個贊
let list = ['John', 'Jacques', 'Peter', 'Robert'];
for (let i = 0; i < list.length; i++) {
let name = list[i];
document.getElementById("list-container").innerHTML += `<p> ${name.substr(0, name.length - 1)}<span style="color: red">${name.charAt(name.length - 1)}<span><p>`
}
<div id="list-container"></div>
添加回答
舉報