使用jQuery中的ID优化搜索(子选择器?)

时间:2017-01-04 10:17:31

标签: jquery

我试图从div创建一种网格,我动态地这样做。现在我有几行(每行都带有ID),行内的每个元素也都有一个ID(它重复,我希望ID是唯一的,因为它们应该是)。基本上,我想要的是什么做的是用某些图片平铺空间,我想为每个特定元素添加一个唯一的ID,所以我可以通过点击甚至重新分配值来更改它(更改图块等)。

但我不确定如何做到这一点,因为在我的循环中我只能创建一行(行)然后追加它(通过克隆)。如果有人可以提出另一种循环方式并分配某些ID,我将非常感激。

提前致谢!

我的代码如下。

minecraft.createDirt = function () {
  var columns = 20;
  var $row = $("<div/>", {
      class: 'row'
  });
  var $square = $("<div/>", {
      class: 'dirt cell'
  });

  $(document).ready(function () {
      //add columns to the the temp row object
      for (var i = 0; i < 20; i++) {
        var dr = $square.clone();
        dr.attr('id', 'dr'+i);
          $row.append(dr);
      }
      //clone the temp row object with the columns to the wrapper
      for (var i = 0; i < 4; i++) {
        var row = $row.clone();
        row.attr('id', 'rowdirt'+i);
          $("#wrapper").append(row);
      }
    })
} 

1 个答案:

答案 0 :(得分:1)

您应该迭代每个单元格并在附加id时设置它。

$(document).ready(function () {
    //clone the temp row object with the columns to the wrapper
    for (var i = 0; i < 4; i++) {
        var row = $row.clone();
        var rowId = 'rowdirt' + i;
        row.attr('id', rowId);

        //add columns to the the temp row object
        for (var j = 0; j < 20; j++) {
            var dr = $square.clone();
            dr.attr('id', rowId + '_dr' + j);
            row.append(dr);
        }

        $("#wrapper").append(row);
    }
})