1

我有这样的 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);
});

它应该可以工作,但它警告未定义。我究竟做错了什么?

4

3 回答 3

3

这是因为在元素targetDOM 接口中input没有命名这样的属性。

input元素没有target属性,只有一个formtarget(等效地有formTarget属性)。我不确定您的“目标”在您的代码中的用途是什么,但 formTarget 是对表单 ID 的引用:

target 和 formtarget 内容属性(如果指定)必须具有有效浏览上下文名称或关键字的值。

元素的目标是元素的 formtarget 属性的值,如果元素是提交按钮并且具有这样的属性;或其表单所有者的目标属性的值,如果它具有这样的属性;或者,如果 Document 包含具有 target 属性的基本元素,则为第一个此类基本元素的 target 属性的值;或者,如果没有这样的元素,则为空字符串。

如果您的“目标”是出于其他目的,请使用data-* 属性来存储值(即data-target="Checkbox6")。

于 2013-07-31T14:03:42.767 回答
2

你需要在.attr()这里使用,因为,target是这里的一个属性

var classNames = parent.find("input").attr("target");

或者

var classNames = $(this).prev().attr("target");
于 2013-07-31T13:54:38.947 回答
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");

这是一个演示:http: //jsbin.com/evafub/1/edit

于 2013-07-31T13:59:08.363 回答