这是我的代码:
<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”的范围文本。我使用上面的javascript,但它需要很长时间才能更改,即它首先显示“测试2”文本,然后在页面加载完成后显示更改的文本“一些示例文本”。
我想在页面加载时立即更改该范围文本。 任何人都可以帮助...也建议使用替代方法。
答案 0 :(得分: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等待一切都到位。 $(document).ready应该更快。
修改强>
其次,如果你正在使用jQuery(你是,对吗?从你对$(窗口)的用法看?),你也可以使用它:
<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>
答案 1 :(得分:0)
使用jquery:
$("span").each(function() {
if($(this).text() == "Test 2") {
$(this).text('some example text');
}
})