var wanhua = {    beishu : Number($("#beishu").val()),
    yuan : Number($("#yuan").html()),
    swanhua : $("input[name='wanhua']:checked").val(),    init:function(){
        alert(this.swanhua );    },
alert(this.swanhua );
我这样 出不来值undeerfind
但是 我这样 alert($("input[name='wanhua']:checked").val());
就可以出来值
这个是怎么一回事啊

解决方案 »

  1.   

        swanhua : $("input[name='wanhua']:checked").val()?"on":"off",
      

  2.   

    可能是时序问题也就是你 wanhua. swanhua的值在生成的时候 还没有内容 说不定页面上 这个input还不存在所以你要这样
    var wanhua = {    beishu : Number($("#beishu").val()),
        yuan : Number($("#yuan").html()),
        swanhua : function(){return $("input[name='wanhua']:checked").val()}
       ,
        init:function(){
            alert(this.swanhua() );    },
      

  3.   

    有值了,
    但是我要的是他得到的值,而不是"no" "off"
      

  4.   


    swanhua : $("input[name='wanhua']:checked").val()?  $("input[name='wanhua']:checked").val() :"undeerfind",
      

  5.   

    是nudeerfind
    我这样
    swanhua : $("input[name='wanhua']:checked").val()?"undeerfind":$("input[name='wanhua']:checked").val(),也是nudeerfind
      

  6.   

    swanhua : $("input[name='wanhua']:checked").val()?$("input[name='wanhua']:checked").val():"off",你看看结果,是一样的。JQ把checked的值翻译成on。如果你没有设定它,因为它是单属性值,有就存在,没有就不存在,所以就会返回undefined,那是完全正确的,所以如果不想在未选中时返回undefined,你就象我这样设定一个你自己定义的值。
    比如:
    swanhua : $("input[name='wanhua']:checked").val()?"checked":"nochecked",
    swanhua : $("input[name='wanhua']:checked").val()?"选中":"未选中",
    swanhua : $("input[name='wanhua']:checked").val()?"你终于上道了":"不选不行啊",
      

  7.   

    不好意思,我理解错误,
    我其实是想得<input type="radio" name="wanhua"/>我
    <input type="radio" name="wanhua"/>你
    <input type="radio" name="wanhua" checked/>他我想要的是 得到被选中的 “他” 这人文字????我以为 $("input[name='wanhua']:checked").val()
    这个得到的就是"他"
      

  8.   

    真正原因应该是三楼说的时序问题,
    因为init函数中直接alert($("input[name='wanhua']:checked").val());可以出来,说明获取值的方式是没有错的
    而这种写法和alert(this.swanhua );看着一样,但分析下执行过程就知道是有区别的    alert(this.swanhua );弹出成员swanhua,而成员swanhua赋值的时间是对象wanhua构造的时候
    也就是说这个写法$("input[name='wanhua']:checked").val()句执行的时间是wanhua构造的时候   alert($("input[name='wanhua']:checked").val());弹出时再获取值,那么这种写法$("input[name='wanhua']:checked").val()句执行的时间就是调用wanhua.init的时候两中写法,唯一的区别就是获取值的时间了,所以,可以判断,wanhua构造时html没有赋值,而wanhua.init调用时已经赋值,三楼的改法可行,能保证也是调用wanhua.init时执行的
      

  9.   

    3楼的方 法也不行
    一用他就说
    ………………Object is not a function
      

  10.   

    可是我是这样写的啊
        swanhua : function(){return $("input[name='wanhua']:checked").val();},
        
            init:function(){
            alert(this.swanhua() );
    换了函数名,还是不行