Amm*_*han 4 html javascript jquery
我的HTML就像
<div data-role="page" id="Dialog_1" data-url="Dialog_1">...</div>
<div data-role="page" id="Dialog_2" data-url="Dialog_2">...</div>
.
.
.
<div data-role="page" id="Dialog_17" data-url="Dialog_17">...</div>
<div data-role="page" id="Dialog_18" data-url="Dialog_18">...</div>
Run Code Online (Sandbox Code Playgroud)
我想通过$ .each选择所有data-role ="page"
我的jQuery
$.each("div[data-role=page]", function (){
console.log($(this).attr('id'));
});
Run Code Online (Sandbox Code Playgroud)
它给出了错误:
Uncaught TypeError: Cannot use 'in' operator to search for '18' in div[data-role=page]
Run Code Online (Sandbox Code Playgroud)
Cer*_*rus 16
你需要提供一个jQuery集合,而不仅仅是一个选择器$.each():
$.each($("div[data-role=page]"), function (){
console.log(this.id);
});
Run Code Online (Sandbox Code Playgroud)
或者,甚至更好:
$("div[data-role=page]").each(function (){
console.log(this.id);
});
Run Code Online (Sandbox Code Playgroud)
请注意我替换$(this).attr('id')为this.id.它获得完全相同的属性,但它的效率更高.
你的代码无法工作的关键原因是因为你试图迭代一个字符串,这不是你真正想要做的.
要迭代jQuery集合,请尝试另一种形式.each():
$("div[data-role=page]").each(function() {
//...
});
Run Code Online (Sandbox Code Playgroud)
$.each() 是(通常)数组或普通对象.
| 归档时间: |
|
| 查看次数: |
12905 次 |
| 最近记录: |