查找jQuery元素的属性

时间:2013-07-31 13:53:11

标签: javascript jquery prop

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

它应该可以工作,但它会提示未定义。我做错了什么?

3 个答案:

答案 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");

以下是演示:http://jsbin.com/evafub/1/edit