不能获取具有特定id的元素作为属性'data-parent'
Can't get elements with specific id as attribute 'data-parent'
我有一个像这样的元素
<input type="checkbox" data-parent="0" value="1229">
我想获得所有data-parent值为n的复选框
这是我在点击事件处理程序方法中尝试的。
checkChildren = function (id) {
var cbs = $(input[type="checkbox"][data-parent=id]);
}
但是在'data-parent=id'附近有一些语法错误
您的CSS选择器错误。改为:
var cbs = $('input[type="checkbox"][data-parent="' + id + '"]');
你需要传递一个字符串选择器给jquery,首先用javascript表达式构建它
此外,html标签属性值("checkbox"
和"0"
)都需要加引号
var selector = 'input[type="checkbox"][data-parent="' + id + '"]';
var cbs = $(selector);
编辑,详细原因:input[type="checkbox"][data-parent=id]
当javascript解析器遇到此问题时,它尝试将其作为javascript代码执行,并将结果提供给$()
。
这是它(javascript解析引擎)尝试的:
- 查找名为
input
的变量 - 在
input
对象之后找到一个左括号[
并求值type="checkbox"
(此操作将变量type
设置为字符串"checkbox"
并返回字符串"checkbox"
) - 将返回值替换为第一个括号,
input["checkbox"
]
(括号操作符查找input
对象的checkbox
属性,如input.checkbox
,并返回该属性的value
或undefined
) - 对第二组括号
value[data-parent=id]
求同样的值(但这次遇到了一个错误,因为data-parent=id
是模糊的,它试图将subtract parent from data
的结果设置为变量id
)
相关文章:
- jQuery可以't获取data-*属性值,返回undefined
- 如何获取`data-listid`属性值
- 为什么toStaticHTML删除data-*属性
- 访问HTML中的data-*属性并将其作为道具传递
- 如何从DOM(KnockoutJS)中删除$data、$parent等
- Ext.data.NodeInterface已禁用属性
- jQuery parent或parents以获取表th标记中的数据属性
- Jquery将data-rel属性添加到所有输入字段,并移除name属性
- 属性来检索和设置Text节点值:data或nodeValue
- 当通过Jquery data()附加时,以及当直接通过HTML中的数据属性附加时,检查HTML元素中的数据()
- 如何使用jQuery选择具有特定data-属性的元素?价值无关紧要
- Javascript个性测试使用'这'和data-*属性
- 使用script元素上的html data-*属性来配置引用的脚本文件
- 将Data属性添加到元素,并从字符串中动态添加值
- 追加并替换data-*属性URL的查询字符串值
- 不能读取属性'data'Angularjs-无法从模板读取数据到控制器)
- 如何接受HTML属性data-*, aria-*
- 更新li元素的属性data-id
- 不能获取具有特定id的元素作为属性'data-parent'
- 如何将json格式设置为html5属性"data-settings"