var size = 5;
var lis = document.getElementById("size").getElementsByTagName("li");
for(var i = 0 ; i < lis.length ; i++)
{
lis[i].onclick = function()
{
size = parseInt(this.innerHTML);
}
} <dl id="size">
<dt></dt>
<dd>
<ul>
<li>5</li>
<li>7</li>
<li>9</li>
</ul>
</dd>
</dl>
如何在点击列表项的时候将列表中的数字赋值给size变量?

解决方案 »

  1.   

    用Jquery选择器的
    $("#size > dd > ul > li").click(function(){
    size=parseInt($(this).text());
    });
      

  2.   

    不用Jquery的话,就是你那样写,写得很好啊
      

  3.   

    外面的那个 size 没有被修改啊
      

  4.   

    要点击才会修改
    size定义成全局变量,没问题的
      

  5.   

    除去Jquery有没有更简单一些的写法,类似
    var size = (function(){
                    var lis = document.getElementById("size").getElementsByTagName("li");
                    for(var i = 0 ; i < lis.length ; i++)
                    {
                        lis[i].onclick = function()
                        {
                            return parseInt(this.innerHTML);
                        }
                    }
    })() || 5;这种形式赋值可以么,可以的话上面的代码不对,应该怎么样修改下
      

  6.   


    <script> 
    var size = 5;
    var lis = document.getElementById("size").getElementsByTagName("li");
    for(var i = 0 ; i < lis.length ; i++)
    {
        lis[i].onclick = function()
        {
            size = parseInt(this.innerHTML);
            alert(size);
        }
    }
    </script>你这段不就给size赋值了么 ?
    全局变量 哪里都能进行操作 。
      

  7.   

    var size = 5;
                    var lis = document.getElementById("size").getElementsByTagName("li");
                    for(var i = 0 ; i < lis.length ; i++)
                    {
                        lis[i].onclick = function()
                        {
                            size = parseInt(this.innerHTML);
                            alert(size);
                        }
                    }楼主代码没问题!
    把dl 放入body 没问题的!
      

  8.   

    <dl id="size">
    <dt></dt>
    <dd>
    <ul>
    <li>5</li>
    <li>7</li>
    <li>9</li>
    </ul>
    </dd>
    </dl><script>
    //var size = 5;
    var size = document.getElementById("size");
    var lis = size.getElementsByTagName("li");
    for(var i = 0 ; i < lis.length ; i++)
    {
    lis[i].onclick = function()
    {
    size.id = parseInt(this.innerHTML);
    }
    }
    </script>
      

  9.   

     $("#size > dd > ul > li").click(function(){
            size=parseInt(this.innerHTML);
        });
      

  10.   


                    var size = 5;
                    var lis = document.getElementById("size");
                    lis.onclick=function(e)
                    {
                        e = e || event;
                        target = e.target || e.srcElement;
                        if(target.tagName=="LI") size=parseInt(target.innerHTML)
                    }