关于autojs#属性值#的问题,如何解决?

关于autojs,如何判断出现2个以上的控件id属性值为“k1w”时,执行输出“1”。

可以使用 id("k1w").find() 来获取所有 id 属性值为 "k1w" 的控件。然后通过判断返回的数组的长度是否大于等于 2,就可以确定是否有 2 个以上的控件 id 属性值为 "k1w"。如下面的代码所示:

if (id("k1w").find().length >= 2) {
    console.log("1");
}

你也可以使用其他的方法来遍历所有的控件,然后通过判断 id 属性值是否为 "k1w" 来确定是否符合条件。例如:

var count = 0;
for (let i = 0; i < 10; i++) {
    var control = id("k1w").findOne(i);
    if (control && control.id == "k1w") {
        count++;
    }
}
if (count >= 2) {
    console.log("1");
}

你可以使用 Auto.js 的 idMatches 函数来查找控件,然后使用 length 属性来判断是否有多于一个控件。例如:

if (idMatches("k1w").length > 1) {
  console.log("1");
}

idMatches 函数会返回一个元素数组,包含所有 id 属性值匹配给定正则表达式的控件。例如,在这个例子中,我们会返回所有 id 属性值为 k1w 的控件。如果数组的长度大于 1,就意味着有多个控件的 id 属性值为 k1w

在 Auto.js 中,可以使用 idContains() 函数来查找 ID 属性值包含特定文本的控件。例如要查找 ID 属性值包含 "k1w" 的控件,可以使用以下代码:

let controls = idContains("k1w");

这将返回一个包含所有 ID 属性值包含 "k1w" 的控件的数组。

然后可以使用数组的 length 属性来判断数组中包含的元素数量。如果数组中包含 2 个以上的元素,就可以执行输出 "1" 的操作:

let controls = idContains("k1w");
if (controls.length >= 2) {
  console.log("1");
}

这样就可以在出现 2 个以上 ID 属性值为 "k1w" 的控件时,执行输出 "1" 的操作。
仅供参考,望采纳,谢谢。


let k1w_count = 0;
let k1w_list = id("k1w").find();
for (let i = 0; i < k1w_list.length; i++) {
  if (k1w_list[i].id() == "k1w") {
    k1w_count++;
  }
}
if (k1w_count >= 2) {
  console.log("1");
}

// 语法:
var widgets = ids("k1w"); // 查找元素,返回值为数组
if (widgets.length >= 2) {
    console.log('1');  // 在控制台输出1
}