如图:
如图所示:数据有很多行,HTML标签是拼出来的,图为页面显示的一行结果,并且我在每一行的价格文本框都加了onkeyup(this)事件,价格也能在JS中通过var price = $(this).val()得到;
因为数据我都是通过JS赋给页面的,所以在赋值的时候我给价格文本框加了属性:**.find("td:eq(10).attr('sum',sum)"),把数量也绑到了价格上面。
问题1:
我通过var sum = $(this).attr('sum');得到的确实underfind。通过Firefox的fireBug看页面代码发现价格文本框上已经绑了sum='245',请问明明有值我通过var sum = $(this).attr('sum');却获取不到。
问题2:如何通过parent(),找父类找的数量文本框获取值?我是这样写的:
1: $(this).parent().find("td:eq(0)").find("input:checked[type=text]").val();
2: $(this).parent().parent().find("td:eq(0)").find("input:checked[type=text]").val();
如上2种都试过,结果都是underfind。
求结果,求原因,我是菜鸟,很急!!

解决方案 »

  1.   

    把html中写事件函数的代码发出来
      

  2.   

    1.看你这行代码
    **.find("td:eq(10).attr('sum',sum)")
    你只是给文本框的父元素td加了sum属性,在文本框的keyup事件中,this是指向文本框,而不是td2. $(this).parent().parent().find("td:eq(0)").find("input:checked[type=text]").val();
    你这个选择器是怎么样都选不出元素来的,input:checked这已经是已经被勾选了的checkbox了,你再加上type=text是肯定找不到的。
    改成$(this).parent().parent().find("td:eq(0)").find("input[type=text]").val()
      

  3.   


    代码都是拼出来的不好贴
    拼的这行td代码:
    html.Append("<td align=center><input IsMust='N' kv=\"7\" ValType='String' type=text class='tx'  style='width:40px' onkeyup=\"javascript:GetQty(this)\"  /></td>");firebug显示结果:
    JS赋值绑定代码:cltr.find("td:eq(7)").find("input").attr("so_no", sp[0]);
    cltr.find("td:eq(7)").find("input").val(sp[6]);
    JS取值代码:function GetQty(obj) {
        var qty = $.trim($(obj).val());
        //var so_no = $(this).parent().parent().find("td:eq(0)").find("input[type=text]").val();
        var so_no = $(this).attr("so_no");
        alert(qty);
        alert(so_no);
    }
    我so_no是我绑上去的,也是我想获取的值。每行的第一个TD就是放so_no的。帮值的代码应该没什么问题,图片显示都已经绑上去了。应该是获取的代码有问题。
    还有functionsub,我用你最后一行代码试了也不行。
      

  4.   

    没搞明白你到底想干什么。。input本身已经有so_no的属性了,为什么还要去每行的第一个td里去获取
      

  5.   

    瞎了,问题解决了!!!obj写成了this.
    var so_no = $(this).attr("so_no");居然犯了这种低级错误,谢谢各位,均分!!!!!!!!
      

  6.   

    function GetQty(obj){
    var qty = $.trim($(obj).val());
        var so_no = $(obj).attr("so_no");
     }