javascript - JS 使用通配符创建数组

标签 javascript arrays wildcard

所以我有一个 HTML 网格,其中每个框都使用以下约定进行标记。每个框都有一个标记为 row_column 的 ID。我想创建一个扫描文档并返回一个数组的方法,该数组仅包含具有特定列号的框。例如,如果我调用下面的函数,它应该返回一个框数组,如果我用数字 2 调用它,将返回 (1_2, 2_2, 3_2 和 4_2)。

  function getBoxesByColumn(columnNumber){
        return document.getElementById("?_" + columnNumber);
    }

从那里,我将使用该函数以这种方式在另一个函数中创建一个数组:

function test(){
    var boxes = getBoxesByColumn(1);
    console.log(boxes);

但是,当我调用控制台时,它仅打印空值。这是为什么?

编辑:

我的 HTML 示例(包含另外 2 行)

        <div id = "game_background">

        <!-- Row 1 --> 

        <div id = "row_1" class = "row">

            <div id = "1_1" class = "box_empty">
                <p class = "v"></p>
            </div>

            <div id = "1_2" class = "box_empty">
                <p class = "v"></p>
            </div>

            <div id = "1_3" class = "box_empty">
                <p class = "v"></p>
            </div>

            <div id = "1_4" class = "box_empty">
                <p class = "v"></p>
            </div> 

        </div>

        <!-- Row 2 --> 
        <div id = "row_2" class = "row">

            <div id = "2_1" class = "box_empty">
                <p class = "v"></p>
            </div>

            <div id = "2_2" class = "box_empty">
                <p class = "v"></p>
            </div>

            <div id = "2_3" class = "box_empty">
                <p class = "v"></p>
            </div>

            <div id = "2_4" class = "box_empty">
                <p class = "v"></p>
            </div>
        </div>

亚历克斯

最佳答案

可以使用.querySelectorAll(),属性以选择器开头,后代选择器>,属性以选择器结尾

function getBoxesByColumn(columnNumber) {
  return document.querySelectorAll("div[id^=row] > div[id$='" + columnNumber + "']");
}

console.log(getBoxesByColumn(2))
<div id="game_background">

  <!-- Row 1 -->

  <div id="row_1" class="row">

    <div id="1_1" class="box_empty">
      <p class="v"></p>
    </div>

    <div id="1_2" class="box_empty">
      <p class="v"></p>
    </div>

    <div id="1_3" class="box_empty">
      <p class="v"></p>
    </div>

    <div id="1_4" class="box_empty">
      <p class="v"></p>
    </div>

  </div>

  <!-- Row 2 -->
  <div id="row_2" class="row">

    <div id="2_1" class="box_empty">
      <p class="v"></p>
    </div>

    <div id="2_2" class="box_empty">
      <p class="v"></p>
    </div>

    <div id="2_3" class="box_empty">
      <p class="v"></p>
    </div>

    <div id="2_4" class="box_empty">
      <p class="v"></p>
    </div>
  </div>

关于javascript - JS 使用通配符创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042846/

相关文章:

linux - ssh 上的通配符不起作用

javascript - Contenteditable 在 Firefox 上删除尾随空格,但在 Chrome 上没有

javascript - 更新 iOS 和 Android 设备中的 PDF 条形码字段

regex - Microsoft Word 正则表达式 : Is there an "OR" operator such as |?

python - 是否有一个 NumPy 函数来返回数组中某物的第一个索引?

c++ - 如何通过引用将数组传递给函数?

java - 如何实例化 int 类型的 Stack 数组?

javascript - 音乐盒问题

javascript - JQuery Mousemove div 类 e.pageX 位置

java - 获取错误消息 "the method asList(string[]) is undefined for the type arrays"