3

関数を呼び出して現在のdivを渡すonclickイベントがあります。

<div onclick="deleteline($(this));">

削除行関数で、名前にQtyが含まれている$(this)の親の子を取得するにはどうすればよいですか?

この例では、ProdQ​​ty入力ボックスを取得しようとしています。

<div>
    <input id="PrdQty" type="hidden" value="1">
    <div onclick="deleteline($(this));">
</div>

編集:このページは、ajax呼び出しを介して別のページに複数回含まれています。したがって、クリック可能なdivにIDを割り当てると、このコードが2回目に親に挿入された後、競合が発生します。

その結果、以下の提案を使用し、インラインのonclickを維持し、sender.parent()。find('input [id * = "Qty"]')を使用して数量を取得しています。

4

5 に答える 5

4

これには、jQuery( http://api.jquery.com/category/selectors/)でCSSセレクターを使用できます。

したがって、あなたの例は次のようになります。

$(this).siblings("input[id*='Qty']")

これにより、IDに配列として「Qty」が含まれる$(this)と同じレベルのすべての入力が返されます。最初のものだけが必要な場合は、行の終わりに.first()を追加します。

$(this).siblings("input[id*='Qty']").first()
于 2012-04-30T15:43:45.770 に答える
2

jQueryイベントAPIを使用してみませんか?

// make it as specific as you need
$('div').click(function() {
    // do something
});

.parent([selector])また、jQueryの関数を使用して親を取得できます。この例では、.prev([selector])関数を使用して前の要素を取得することもできます。

于 2012-04-30T15:40:53.073 に答える
1

私はHTMLマークアップからonclickを削除することを好みます。なぜなら、私はそれを邪魔にならない方法で書くのが好きだからです。セレクターとして機能するクラス名をdivに追加します

<div>
  <input id="PrdQty" type="hidden" value="1">
  <div class="divtoCheck" />
</div>


$(function(){
    $(".divtoCheck").click(function(){
         var child=$(this).parent().find("input[id*='Qty']")
        alert(child.attr("id"));
    });

});

作業サンプルhttp://jsfiddle.net/gKnf3/10/

于 2012-04-30T15:49:40.323 に答える
1
   <div>
      <input id="PrdQty" type="hidden" value="1">
      <div id="getChild"></div>   // here I give an ID to you div.you can also  use class
   </div>


   // binding click event on #getChild div

    $('#getChild').on('click', function() {

       $(this).parent().find('input[id~="Qty"]');

    });

また:

<div>
    <input id="PrdQty" type="hidden" value="1">
    <div onclick="deleteline(this);">
</div>


function deleteline($this) {
   $($this).parent().find('input[id~="Qty"]');
}
于 2012-04-30T15:40:16.257 に答える
0

jQueryが提供するセレクターを含む属性を使用することをお勧めします。

これが私がいじったコードです:http://jsfiddle.net/luhn/RrczZ/

編集: 他のすべての回答は、属性に単語セレクターが含まれていることを使用しているようですが、実際には機能しません...。

于 2012-04-30T15:43:51.137 に答える