未捕获的类型错误:未定义不是上的函数.GetElementByID

Uncaught TypeError: undefined is not a function on .GetElementByID

本文关键字:未定义 函数 GetElementByID 类型 错误      更新时间:2023-09-26

以下是我要做的:

我有一张桌子设置如下:

<tbody id="entryTable" class="entryHead">
            <tr id="1">
                <td id="1">1</td>
                <td class = driver></td>
                <td><div id="button">Clear!</div></td>
            </tr>
            <tr id="2">
                <td>2</td>
                <td class = driver></td>
                <td><div id="button">Clear!</div></td>
            </tr>
            <tr id="3">

我正试图从这份表格中获得信息来填写表格:

<form>
        Driver Name:<br>
        <input type="text" name="name">
        <br>
        Driver Draw:<br>
        <input type="text" name="draw">
<div id="button">Add!</div>
    </form>

我写了一些jquery来尝试做到这一点:

var main = function () {
    $('#button').click(function ( ) {
        var name = $('input[name=name]').val();
        var draw = $('input[name=draw]').val();
        var clear = "clear";
        var draw2 = "#"+draw;
        console.log(draw2);
        $("draw2").getElementById(".driver").innerHTML = name;
                           }
                      )};

当我按下我所做的"添加"按钮时,我会得到指向.getElementByID.的错误"未捕获类型错误:未定义不是函数"

也许我处理得不对,但我正在尝试让司机的名字出现在的中,并带有司机画的号码的id。

有什么想法吗?

您使用的是jQuery,不能在jQuery集合对象上使用标准getElementById。您可以使用.find(),或者在某个索引处获得真正的Element。这里有两个解决方案:

$("selector").find("#your-id");
// or
$("selector")[0].getElementById("your-id");

由于它的jquery,它有以下语法:

$(<selector>).function()...;

其中,<selector>是对象的选择器(.class#id)。

因此,不用$("draw2").getElementById(".driver").innerHTML = name;,而是使用这个:

$(".driver").html(name);$(".driver").text(name);

使代码尽可能简单。试试这个,首先编辑你的HTML代码。为包含驱动程序类的两个元素放置一个不同的类:

 <tbody id="entryTable" class="entryHead">
        <tr id="1">
            <td id="1">1</td>
            <td class = driverName></td>
            <td><div id="button">Clear!</div></td>
        </tr>
        <tr id="2">
            <td>2</td>
            <td class = driverDraw></td>
            <td><div id="button">Clear!</div></td>
        </tr>

然后把你的Javascript编辑成这样:

$(function () {
      $('#button').click(function ( ) {
          var name = $('input[name=name]').val();
          var draw = $('input[name=draw]').val();
          $(".driverName").html(name);
          $(".driverDraw").html(draw);
      }
)};

如果.html()不起作用,则将其更改为.text()

   $(".driverName").text(name);
   $(".driverDraw").text(draw);

只是一个提示:当使用jQuery时,不要结合javascript的语法,因为它只会给你带来错误。相反,搜索等价于javascript函数的jQuery:就像原生javascript上的innerHTML=0在jQuery上只有.html(0),或者原生javascript上只有getElementById在jQuery中只是一个$sign。

我开始工作了。以下是我最终所做的事情,以及对该项目的总结。

这是我的第一个JavaScript/JQuery项目。我正试图为我参加比赛的赛道编写一个程序,该程序将创建一个参赛名单,根据车手参赛时随机抽取的数字计算预赛阵容,然后根据预赛结果计算特征阵容。

这是官方用来添加每个司机的表格。"添加"按钮将运行jQuery脚本,将驱动程序名称填充到表中的行中,该行等于他们绘制的数字。

 <form>
        Driver Name:<br>
        <input type="text" name="name">
        <br>
        Driver Draw:<br>
        <input type="text" name="draw">
<div id="button">Add!</div>
    </form>

表格示例:

<thead>
        <tr class="entryHead">
          <th>Draw</th>
          <th>Driver Name</th>
          <th>clear</th>
        </tr>
    </thead>
    <tbody id="entryTable" class="entryHead">
        <tr id="1">
            <td>1</td>
            <td class = "driver1" ></td>
            <td><div id="button">Clear!</div></td>
        </tr>
        <tr id="2">
            <td>2</td>
            <td class = "driver2"></td>
            <td><div id="button">Clear!</div></td>
        </tr>
        <tr id="3">
            <td>3</td>
            <td class = "driver3"></td>
            <td><div id="button">Clear!</div></td>
        </tr>
        <tr id="4">
            <td>4</td>
            <td class = "driver4"></td>
            <td><div id="button">Clear!</div></td>
        </tr>
        <tr id="5">
            <td>5</td>
            <td class = "driver5"></td>
            <td><div id="button">Clear!</div></td>
        </tr>

我总共有60排。现在,身份证什么都不做。。。我只是把它留在那里,因为我在试验的时候早些时候就把它放在那里了,我会把它留在这里,以防它早些时候有用。

然后是类"driver1"、"driver2"、"drive 3"等,供jQuery使用。

这是我的jQuery脚本:

function Driver(draw, name) {
    this.draw = draw;
    this.name = name;
}

var main = function () {
    $('#button').click(function ( ) {
        var name = $('input[name=name]').val();
        var draw = $('input[name=draw]').val();
        var clear = "clear";
        var draw2 = "#"+draw;
        var name2 = ".driver"+draw
        console.log(draw2);
        console.log(name2);
        $(name2).text(name);
        });
}

$(document).ready(main);

我正在制作一个名为"Driver"的对象,稍后将使用。现在,它就在那里。

创建变量"name2"允许"$(name2).text(name);"在等于"draw"的行中找到合适的类,并将驱动程序的名称放入该draw中。例如,如果Jeff Gordon画出24,他的名字将出现在第24行,而他使用的"name2"变量最终将为"name24"。

这有道理吗?

我现在有这个部分要做。谢谢你的帮助。