0

我有一个查询,我想在其中设置 div 中第二个跨度的值。

<div id="content">
    <h1>Welcome</h1>
    <span>This is the first span</span>
    <span>This is the second span</span>
    <span>This is the 3rd span</span>
    </div>

我正在使用以下 javascript。

function SetValue(myValue) {

            var mainDiv = document.getElementById("content");
            for(var i=0;i<mainDiv.childNodes.length;i++) {
               if(mainDiv.childNodes[i] == 2) {
                   mainDiv.childNodes[i].innerText = myValue;
               }


            }
        }

我想在主 div 的第二个跨度中设置参数值

4

5 回答 5

2

在里面SetValue,使用这一行:

$("#content span:eq(1)").html(myValue);

不需要循环或任何其他东西。

文档:eq

这个工作的小提琴:http: //jsfiddle.net/gromer/dB5vS/3/

于 2012-10-04T16:37:53.947 回答
1

只需使用 .eq() 函数

$('#content').find('span').eq(1).text("Your Value");

.eq 函数从索引 0 开始;

这是演示 http://jsfiddle.net/Simplybj/n9HLU/2/

于 2012-10-04T16:37:50.740 回答
0

这个纯 JS 实现怎么样,因为除了标签之外,没有任何迹象表明 JQuery 是一个选项,并且对于这样的事情完全不需要它:

function SetValue(myValue){
    document.getElementById("content").getElementsByTagName("span")[1].innerText = myValue;
}

http://jsfiddle.net/MTSAN/1/

于 2012-10-04T16:38:22.197 回答
0

您的 if 语句将必须检查mainDiv.childNodes[i].tagName == "span"并增加一个计数器,一旦找到第二个,就设置 innerText。或者(我认为更好)一些使用 nth-child css 选择器的 jQuery 建议已经发布。

于 2012-10-04T16:40:05.017 回答
-1

这可能会有所帮助:

$(function() {
  $('#content span:nth-child(2)').text('your text');
});​
于 2012-10-04T16:38:25.207 回答