javascript - 在 jQuery 选择器中使用函数参数

标签 javascript jquery

我有一个名为路径的对象,它是:

var path = { "firstFloor": ["roomA1", "roomA6", "roomA5", "roomA2", "roomA3", "roomA4", "roomA10"],
  "secondFloor": ["roomB4", "roomB5", "roomB6"],
  "basementFloor": []}

现在我通常选择数组(path.firstFloor等),但我需要在函数中以键作为参数选择这些对,所以:

function draw(floor) { //later on I will call this function with parameter firstFloor
  $(path.floor).each(function(i, val){ //this is where I need to select.
    var roomIdPath = path.firstFloor[i]
    //console.log(roomIdPath);
    var points = d3.select('#'+roomIdPath).attr('points').split(",");
    var midX = (Number(points[0]) + Number(points[6])) / 2;
    var midY = (Number(points[1]) + Number(points[3])) / 2;
    floorArray.push({"x": midX, "y": midY});
  });
}

不确定我是否清楚,基本上,我需要的是一种在 jQuery 选择器中使用函数参数的方法。有办法做到这一点吗?

最佳答案

如果您要向函数发送键,则可以使用这些键来访问与对象路径中的键映射的值。

当前您已经使用了path.floor,这是错误的,因为它会在您需要使用path[floor]的路径对象中查找名为floor的键。你可以这样做:

 function draw(floor) { //later on I will call this function with parameter firstFloor
      $(path[floor]).each(function(i, val){ //this is where I need to select.
        var roomIdPath = path[floor][i];
        //console.log(roomIdPath);
        var points = d3.select('#'+roomIdPath).attr('points').split(",");
        var midX = (Number(points[0]) + Number(points[6])) / 2;
        var midY = (Number(points[1]) + Number(points[3])) / 2;
        floorArray.push({"x": midX, "y": midY});
      });
    }

关于javascript - 在 jQuery 选择器中使用函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45285460/

相关文章:

javascript - 多重表达式语句上的意外标记 '('

javascript - 使用 Angular7/firebase 对数组中的数据进行排序

javascript - JS 在使用 .push() 时防止重复

javascript - 在javascript/jQuery中设置Java的数据结构

javascript - HTML5 视频在服务器上托管后无法在 chrome、IE 上运行,视频为 mov 文件(quicktime 格式)

javascript - Rails 3.1 是否包括整个 jQuery 库?

javascript - Parse.com 主 key 不允许写入 PFUser currentUser

javascript - 将选择器限制为特定的 anchor 标记

javascript - 如何获取图像的高度和宽度javascript

javascript - 使用 jquery 或 java 脚本中的拖放功能填充空白