使用jquery查找类似命名的变量

时间:2014-03-05 20:58:07

标签: javascript jquery wildcard

我的代码在

下面
<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>

我希望得到所有以字符串&#39; ball&#39;开头的变量。我该怎么做?上面的代码将arr.length设为0.我的代码是否正确?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这将给出0作为

  

$(“[name ^ ='ball']”)将使用属性'name'搜索DOM而不是变量名称

答案 2 :(得分:0)

作为拖延者优雅的javascript解决方案的替代品。如果你想使用jquery和dom对象,你可以做类似的事情

http://jsfiddle.net/kDy8Z/1/

<span name="newsletter"></span>
<span name="milkman"></span>
<span name="newsboy"></span>

<script>
$(function(){
    var array = $("[name^='news']");
    alert(array.length);
});
</script>

他们不必是跨度,但任何名称属性都以新闻开头。

从这里取得的例子https://api.jquery.com/attribute-starts-with-selector/