我有这样的HTML:
<div class="icheckbox_flat-aero checked" style="position: relative;">
<input type="checkbox" class="icheck" id="Checkbox9" name="userAccessNeeded" target="Checkbox6" style="position: absolute; opacity: 0;">
<ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins>
</div>
这是我的javascript:
$('.iCheck-helper').click(function () { // the element I clicked on
var parent = $(this).parent(); // gets the div element
var classNames = parent.find($("input")).prop("target"); // gets the input elements target
alert(classNames);
});
它应该可以工作,但它会提示未定义。我做错了什么?
答案 0 :(得分:3)
这是因为DOM interface of the input
element中没有名为target
的此类属性。
input
个元素没有target
属性,只有formtarget
(相当于formTarget
属性)。我不确定你的“目标”的目的是什么,但是formTarget是对表单ID的引用:
target和formtarget内容属性(如果已指定)必须具有有效浏览上下文名称或关键字的值。
元素的目标是元素的formtarget属性的值,如果元素是提交按钮并且具有这样的属性;或者表单所有者的目标属性的值,如果它具有这样的属性;或者,如果Document包含具有target属性的基本元素,则第一个这样的基本元素的target属性的值;或者,如果没有这样的元素,则为空字符串。
如果您的“目标”用于其他目的,请使用data-* attribute存储该值(即data-target="Checkbox6"
)。
答案 1 :(得分:2)
您需要在此使用.attr()
,因为target
是此处的属性
var classNames = parent.find("input").attr("target");
或
var classNames = $(this).prev().attr("target");
答案 2 :(得分:1)
这应该解决它:
$('.iCheck-helper').click(function () {
var parent = $(this).parent();
var classNames = parent.find("input").attr("target");
alert(classNames);
});
已更改
parent.find($("input")).prop("target");
到
parent.find("input").attr("target");