-1

这是我下面的代码:

<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”文本,然后在页面加载完成后显示更改的文本“一些示例文本”。

我想在页面加载时立即更改跨度文本。任何人请帮助我......还建议了替代方法。

4

2 回答 2

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(你是,对吗?从你对 $(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>
于 2013-08-26T19:32:17.780 回答
0

使用jQuery:

$("span").each(function() {
    if($(this).text() == "Test 2") {
        $(this).text('some example text');
    }
})
于 2013-08-26T19:33:09.703 回答