代码之家  ›  专栏  ›  技术社区  ›  kas_miyulu

javascript在控制台中工作,但在添加$(document).ready(函数()

  •  -3
  • kas_miyulu  · 技术社区  · 6 年前

    我就是不能让这个工作。它在Google Chrome的控制台中运行良好。我添加了 $(document).ready(function () . 还是没有运气。非常感谢您的帮助。更新:在动态创建的HTML表上选择行时,我正在尝试获取第一个单元格的值。

    脚本

    <script type="text/javascript">
    
        $.ajax({
            url: '@Url.Action("VisitList")',
            method: 'post',
            dataType: "json",
            contentType: 'application/json;charset=utf-8',
            data: "{id: 112601}",
            success: function (data) {
                //alert("success");
                $('#divData').removeClass('hidden');
                $('#tblBody').empty();
                $.each(data, function (index, value) {
                    var row = $('<tr><td>' + value.JobID + '</td><td>'
                        + value.VisitID + '</td><td>'
                        + value.VisitDate + '</td><td>'
                        + value.VisitInfo + '</td><td>'
                        + value.Engineer + '</td></tr>');
                    $('#tblData').append(row);
                });
            },
            error: function (xhr) {
                alert(xhr.responseText);
    
            }
        });
    
        $(document).ready(function () {
            $("#tblBody tr").click(function (rowElement) {
                //alert("hello");
                var value = $(this).find('td:first').html();
                alert(value);
            })
        });
    </script>
    
    5 回复  |  直到 6 年前
        1
  •  3
  •   Nikhil Aggarwal    6 年前

    在动态添加行时,需要使用 jQuery.on

     $("#tblBody").on("click", "tr", function (rowElement) {
         var value = $(this).find('td:first').html();
         alert(value);
    });
    
        2
  •  0
  •   David    6 年前

    您可能忘记了将jquery添加到HTML的头部。参见示例:

    $(document).ready(function(){
      alert("Hello World!");
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        3
  •  0
  •   CodeSmith    6 年前

    错误是什么?

    试着把这个放在脚本的开头:

    console.log($().jquery);
    

    它应该打印出jquery版本,这样您就知道jq在这一点上是可用的。

    另外,文档可能已经准备好了,但是您是否可以稍后动态地向其中添加元素?

     $("#tblBody tr")
    

    也许目标不见了?没有加载或目标定位不好?

    在任何情况下,如果上面没有解决问题,那么一定要包括错误、相关的HTML结构和任何可能改变问题中HTML的附加代码,使其成为完整的代码。

    专业提示:有“抢劫”或类似的问题可以更快地解决,并确实吸引更多的人。

        4
  •  0
  •   Adeel Kirti Nariya    6 年前

    你可以用 .on 单击事件 document 像这样:

    $(document).on('click', '#tblBody tr', function () {
        var value = $(this).find('td:first').text();
        alert(value);
    });
    
        5
  •  0
  •   Avani Somaiya    6 年前

    如果当时动态添加任何数据,则应使用jquery.on()方法。如下所示:

        $("#tblBody").on("click", "tr", function (rowElement) {
         var value = $(this).find('td:first').html();
         alert(value);
       });