这是我下面的代码:
<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
var spans = document.getElementsByTagName("span");
for(var i=0;i<spans.length; i++) {
if(spans[i].innerHTML == "Test 2") {
spans[i].innerHTML = "some example text";
break;
}
}
});//]]>
</script>
<div class="sptests">
<ul>
<li id="sp_test" class=""><span>Test</span></li>
<li id="sp_test2" class=""><span>Test 2</span></li>
<li id="sp_test3" class=""><span>Test 3</span></li>
</ul>
</div>
我想更改li id="sp_test2"的span文本。我使用了上面的javascript,但它需要很长时间才能更改,即它首先显示"测试2"文本,然后在页面加载完成后显示更改后的文本"一些示例文本"。
我想在页面加载时立即更改跨度文本。任何人请帮帮我。。。还提出了替代方法。
<script type='text/javascript'>//<![CDATA[
$(document).ready(function(){
var spans = document.getElementsByTagName("span");
for(var i=0;i<spans.length; i++) {
if(spans[i].innerHTML == "Test 2") {
spans[i].innerHTML = "some example text";
break;
}
}
});//]]>
</script>
试试看。如果我是正确的,$(window).load会等待所有东西都到位$(文档)。准备应该更快。
编辑
其次,如果您无论如何都在使用jQuery(从您对$(window)的使用情况来看,您是对的?),你还不如用它:
<script type='text/javascript'>//<![CDATA[
$(document).ready(function(){
$("sp_test2").children("span").html("Some example text");
});//]]>
</script>
<div class="sptests">
<ul>
<li id="sp_test" class=""><span>Test</span></li>
<li id="sp_test2" class=""><span>Test 2</span></li>
<li id="sp_test3" class=""><span>Test 3</span></li>
</ul>
</div>
使用jquery:
$("span").each(function() {
if($(this).text() == "Test 2") {
$(this).text('some example text');
}
})