Javascript 获取当前复选框的子输入标记
我正在尝试获取当前已单击复选框的子输入标记,并通过我的指令向其添加Javascript 获取当前复选框的子输入标记,javascript,angularjs,angularjs-directive,scope,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Scope,Angularjs Scope,我正在尝试获取当前已单击复选框的子输入标记,并通过我的指令向其添加已选中的。我的指令设置正确,但当我尝试获取elem[1] HTML: elem是jQuery或jqLite对象。下标允许您索引到由选择器匹配的元素集合中。例如,在jQuery中 $("span")[1] 获取页面上的第二个span。另一方面, $("body")[1] 应返回undefined,因为应该只有一个实体 元素中只有一个元素(代码)。要获取其第二个孩子,可以执行以下操作: elem.children()[1] 但您
已选中的
。我的指令设置正确,但当我尝试获取elem[1]
HTML:
elem
是jQuery或jqLite对象。下标允许您索引到由选择器匹配的元素集合中。例如,在jQuery中
$("span")[1]
获取页面上的第二个span
。另一方面,
$("body")[1]
应返回undefined,因为应该只有一个实体
元素中只有一个元素(代码)。要获取其第二个孩子,可以执行以下操作:
elem.children()[1]
但您可能想要它的第一个子项,因为复选框在HTML中位于第一位:
elem.children()[0]
另一种方法是:
elem.find("input")[0]
这可能更好,因为如果更改HTML中元素的顺序,它不会中断
这两种方法都可以得到一个普通的DOM对象。一旦有了checkbox元素,就可以如下设置其checked
属性:
elem.children()[0].checked = true;
// or
elem.find("input")[0].checked = true;
顺便说一下,您可能应该从复选框中删除id
元素,因为如果您多次使用此指令,该id将被复制。elem
是一个jQuery或jqLite对象。下标允许您索引到由选择器匹配的元素集合中。例如,在jQuery中
$("span")[1]
获取页面上的第二个span
。另一方面,
$("body")[1]
应返回undefined,因为应该只有一个实体
元素中只有一个元素(代码)。要获取其第二个孩子,可以执行以下操作:
elem.children()[1]
但您可能想要它的第一个子项,因为复选框在HTML中位于第一位:
elem.children()[0]
另一种方法是:
elem.find("input")[0]
这可能更好,因为如果更改HTML中元素的顺序,它不会中断
这两种方法都可以得到一个普通的DOM对象。一旦有了checkbox元素,就可以如下设置其checked
属性:
elem.children()[0].checked = true;
// or
elem.find("input")[0].checked = true;
顺便说一下,您可能应该从复选框中删除id
元素,因为如果您多次使用此指令,该id将被复制。您正在尝试访问数组元素中不存在的元素[1]
不要使用elem[1]
使用elem[0]
您正在尝试访问数组elem中不存在的elem[1]
不要使用elem[1]
使用elem[0]
你只需使用
可以使用event属性获取当前选中的元素
link: function(scope, elem, attr) {
elem.bind('click', function(evt) {
angular.element(evt.target).attr('checked',true);
});
}
这里是工作您可以使用
可以使用event属性获取当前选中的元素
link: function(scope, elem, attr) {
elem.bind('click', function(evt) {
angular.element(evt.target).attr('checked',true);
});
}
这里的工作是有意义的,但仍然没有回答我的第二个问题,即在其中添加checked。。。我试过用prop
来做so@user4756836编辑使用相同的已检查属性使其有意义,但仍然没有回答我的第二个问题,即在其中添加已检查属性。。。我试过用prop
来做so@user4756836编辑使用相同的已检查属性检查更新的答案检查更新的答案