Javascript 根据标题标记自身的现有内容替换其内容
我有一个预先存在的html块,我需要使用jQuery修改它。HTML如下所示:Javascript 根据标题标记自身的现有内容替换其内容,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有一个预先存在的html块,我需要使用jQuery修改它。HTML如下所示: <div class="main"> <div class="wms-column wms-column-nav"> <div class="wms-column-nav-body"> <div class="section"> <h3>Recent News</h3>
<div class="main">
<div class="wms-column wms-column-nav">
<div class="wms-column-nav-body">
<div class="section">
<h3>Recent News</h3>
<ul class="other">
<li>Something</li>
</ul>
</div>
</div>
</div>
</div>
近期新闻
- 某物
我需要针对H3并更改其内部文本。然而,由于没有ID,用选择器来定位它是很棘手的。有许多其他H3标签通过他们的网站,不能改变,但有相同的选择器路径。我如何根据H3的内容确定其目标,然后对其进行更改?我更喜欢插入html而不是文本的方法,因为将使用一些特殊字符
谢谢 在香草Javascript中:
var elements = document.getElementsByTagName('h3');
for (var i=elements.length; i-->0; ) {
var element = elements[i];
var text = element.textContent || element.innerText;
if (text=='Recent News') {
element.innerHTML = 'some new text';
}
}
使用jQuery:
$('h3')
将选择所有标题标记。您可以单独处理它们:$('h3')。等式(0)
$('h3')。等式(1)
等
您还可以轻松地通过它们进行循环:
$('h3').each(function() {
alert(this.text()) <-- "this" will point to the current item in the loop.
})
$('h3')。每个(函数(){
警报(this.text())您只需选择所有h3标记,然后遍历它们并检查它们的内容
我将使用以下方法:
var h3Tags = document.getElementsByTagName('h3');
for (var x=0; x<h3Tags.length; x++) {
if (h3Tags[x].innerText=='Recent News') {
h3Tags[x].innerHTML = 'New Content';
}
}
var h3Tags=document.getElementsByTagName('h3');
for(var x=0;xLooks很好。如果一个页面有很多很多H3标签,这会有点多吗?这不会有问题,只要你不每隔几毫秒做一次。如果你对性能着迷,我只更改了一次调用长度(这不是一个数组,而是一个动态集合,因此获取长度并不完全是即时的。如果您确定只有一个元素需要更改,则在找到它时可能会中断。但不要过度优化:这很快。