如何使用jQuery访问在jQuery中创建的元素

How to access elements that were created in jQuery with jQuery

本文关键字:jQuery 创建 元素 何使用 访问      更新时间:2023-09-26

我使用jQuery创建元素,并在过程中为它们分配ID。在我的代码后面,我想通过它们的ID访问这些元素。但是,我无法使用jQuery来实现这一点。如果我只使用核心JS,它是有效的。为什么会这样?

var createTable = function(rows, columns, height, width) {
    var $table = $("<table>");
    $("body").append($table);
    for (var i = 1; i < rows + 1; i++) {
        var $tr = $("<tr>");
        $table.append($tr);
        for (var j = 1; j < columns + 1; j++) {
            var $td = $("<td>", { id: i + "." + j });
            $td.css("height", height + "px").css("width", width + "px")
               .css("border", "1px black solid");
            $tr.append($td);
        }
    }
}

createTable(4, 4, 150, 100);

不起作用:

$("#1.1").css("border", "1px red solid");

作品:

var onePointOne = document.getElementById("1.1");
onePointOne.style.border = "1px red solid";

点在选择器中有特殊的含义:它们是类选择器。您需要逃离该点才能找到正确的id:

$('#1''.1')...

.运算符表示类,因此它将搜索id 1,它是类1,但您没有访问这些,但您的id包含.一个元字符,您需要使用斜线来转义该元字符:

$("#1''.1").css("border", "1px red solid");

点击这里查看更多信息

但我建议你不要对你的id使用.运算符,你可以像1-1那样分配它,你可以很容易地像$('#1-1') 那样访问它

更重要的是,我建议您不要使用从数字开始的id。

试试这个,它会起作用:

$("#1''.1").css("border", "1px red solid !important");