我的代码如下

<script>
ball1 = "this is ball1";
ball2 = "this is ball2";
ball3 = "this is ball3";
bat = "this is not a ball";

var arr = $("[name^='ball']");
alert(arr.length);
</script>


我想获取所有以字符串“ ball”开头的变量。我该怎么做?上面的代码将arr.length设置为0。我的代码正确吗?

最佳答案

jQuery旨在查询DOM树。无论如何,请尝试以下操作:

var r = /^ball/,
    balls = [];
for (var k in window) {
    r.test(k) && balls.push(window[k]);
}


注意,window(最大作用域)是隐式填充的:

<script>
var ball1 = '1'; // global variable
window.ball1; // '1'
</script>


但是,如果在函数内部进行操作,则不正确:

function f() {
    var ball1 = '1'; // local variable
    window.ball1; // undefined
}
f();
window.ball1; // undefined;


在这种情况下,无法从外部访问ball1

关于javascript - 使用jQuery查找名称相似的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22209059/

10-09 14:04