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

これは、 elementtargetDOM インターフェースにinputそのような名前のプロパティがないためです。

input要素には属性がなく、target属性のみがありますformtarget(同じようにformTargetプロパティがあります)。「ターゲット」の目的がコードにあるのかわかりませんが、formTarget はフォームの ID への参照です。

target および formtarget コンテンツ属性が指定されている場合は、有効なブラウジング コンテキスト名またはキーワードの値が必要です。

要素のターゲットは、要素が送信ボタンであり、そのような属性を持つ場合、要素の formtarget 属性の値です。または、そのフォーム所有者の target 属性の値 (そのような属性がある場合)。または、Document に target 属性を持つ base 要素が含まれている場合は、そのような最初の base 要素の 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 に答える