无法将具有特定ID的元素作为属性' data-parent'

时间:2015-07-16 00:22:36

标签: javascript jquery html

我有这样的元素

<input type="checkbox" data-parent="0" value="1229">

我希望得到所有带有数据父级的复选框,其值为N。

以下是我在点击事件处理程序方法中尝试的内容。

checkChildren = function (id) {
    var cbs = $(input[type="checkbox"][data-parent=id]);
}

但是在&data; parent-id&#39;

附近有一些语法错误

2 个答案:

答案 0 :(得分:3)

您的CSS选择器错误。将其更改为:

var cbs = $('input[type="checkbox"][data-parent="' + id + '"]');

答案 1 :(得分:2)

你需要将字符串选择器传递给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"]
    (括号运算符会查找checkbox对象的input属性,例如input.checkbox,并返回属性的valueundefined
  • 同样评估第二组括号value[data-parent=id]
    (但这次因为data-parent=id不明确而导致错误,它正试图将subtract parent from data的结果设置为变量id