我的代码在
下面<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.我的代码是否正确?
答案 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对象,你可以做类似的事情
<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/