jQuery中$(this)返回的是undefined,用index()方法获得的索引全为-1,是什么情况?show_tab()方法 var mthtml = "<tr>";
for (var i = 0; i < week_count; i++) {
var tt= "";
tt = "<td style=\"width:120px;height:40px;text-align:center;font-size:12px;\" onclick=\"show_tab();\">";
tt += mm+"月第" + (i+1) + "周</td><br/>";
mthtml +=tt;
}
mthtml += "</tr>";
//console.log(cont);
//document.write(cont);
$('#ll').empty().append(mthtml);下面是在百度里找的各种写法,都不对 show_tab = function(){
//var shen = $(this);
//var aa = $(this).prop();
//varrs=$("#ll td").eq(index).html();
//varrs=$("li").eq(index).get(0).attr("value");
//$(this).css("color","blue").siblings().css("color","");
//$("#ll tr td").css("color","blue");
//var wwe = $(#rr);
//var value = $(obj).parents("tr").children("td").eq(1).find("input:first").val();
//var wwe = parseInt($(this).html().substr(3,1));
//alert(wwe);
//var aa= $(this).parent('td').html();
var aa= $(this).index("td");
//var aa =$(this).children("#ll td").index(); 
//var aa = $("#ll tr td").index(this);   
//var aa = $("#ll tr td").index(this);

//$(obj).parent().find("td").removeClass("tdactive");
//console.log($(this).parents("tr").attr('width'));
console.log(aa);
}

解决方案 »

  1.   

    onclick=\"show_tab.call(this);\">;或者
    onclick=\"show_tab(this);\">;show_tab = function(thisObj){
    var shen = $(thisObj);
      

  2.   


    $('#ll').empty()
    for (var i = 0; i < week_count; i++) {
        let $td = $(`<td style="width:120px;height:40px;text-align:center;font-size:12px;">${mm}月第${i+1}周</td>`)
        $td.on('click',show_tab);
        $('#ll').append($td)
        $('#ll').append($('<br/>'))
    }
      

  3.   

    onclick=\"show_tab(ele);\">;
    show_tab = function(ele){
        var shen = $(ele);
    }
      

  4.   

    对于动态生成的html标签,如果你想用jquery获取到它,可以从$('body #ll')去取到他