不能获取具有特定id的元素作为属性'data-parent'

Can't get elements with specific id as attribute 'data-parent'

本文关键字:属性 data-parent 元素 获取 id 不能      更新时间:2023-09-26

我有一个像这样的元素

<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,并返回该属性的valueundefined)
  • 对第二组括号value[data-parent=id]
    求同样的值(但这次遇到了一个错误,因为data-parent=id是模糊的,它试图将subtract parent from data的结果设置为变量id)