0

こんにちはみんな?これを手伝ってくれませんか。特定のpタグの最初の入力のIDと2番目の入力のテキスト値を取得したい

 <p class="receiveitem">
 <label for="mat_id">Material</label>
 <input type="text" id="4"value="GI Coulping" disabled/>
 <label for="rec_qty">Quantity</label>
<input type="text" class="rec_qty" />
 <input type="button" class="receive" value=Receive />
 </p>
 <p class="receiveitem">
 <label for="mat_id">Material</label>
 <input type="text" id="5"value="Vulca Seal" disabled/>
 <label for="rec_qty">Quantity</label>
<input type="text" class="rec_qty" />
 <input type="button" class="receive" value=Receive />
 </p>
 <p class="receiveitem">
 <label for="mat_id">Material</label>
 <input type="text" id="6"value="teflon tape" disabled/>
 <label for="rec_qty">Quantity</label>
<input type="text" class="rec_qty" />
 <input type="button" class="receive" value=Receive />
 </p>

したがって、pタグにある受信ボタンをクリックすると。それは次のような何かを出力します

ID: 4 and Value: 10

すでにjsを持っていますが、私はそれを成し遂げることができません。

    $(document).ready(function(){
    $('input#receive').click(function(){

    var mat = $('input[type=text]:first').attr('id');
    var qty = $('input[type=text]:last').val;
    alert(mat + qty);
        });
});

そして、これを変数マットと数量のどこに置くかわかりません。助けてください。

4

2 に答える 2

0
$(document).on('click', 'input#receive', function(e){
 e.preventDefault();
var qty = $(this).prev().prev('input');
alert(qty);
});

ただし、データまたは一意の ID を使用するには、マークアップを変更する必要があります。

于 2013-01-08T18:57:01.997 に答える
0

これは、より意味的に正しいデータ属性広くサポートされている)を使用した修正されたアプローチです( @Chaseの回答に基づいて構築されています)(およびデモ

<p class="receiveitem">
  <label for="mat_id">Material</label>
  <input name="mat_id" type="text" data-id="4" value="GI Coulping" disabled="disabled"/>
  <label for="rec_qty">Quantity</label>
  <input type="text" name="rec_qty" />
  <input name="rec_qty" type="button" class="receive" value="Receive" />
</p>
<p class="receiveitem">
  <label for="mat_id">Material</label>
  <input name="mat_id" type="text" data-id="5" value="Vulca Seal" disabled="disabled"/>
  <label for="rec_qty">Quantity</label>
  <input type="text" name="rec_qty" />
  <input type="button" class="receive" value="Receive" />
</p>
<p class="receiveitem">
  <label for="mat_id">Material</label>
  <input name="mat_id" type="text" data-id="6" value="teflon tape" disabled="disabled"/>
  <label for="rec_qty">Quantity</label>
  <input type="text" name="rec_qty" />
  <input type="button" class="receive" value="Receive" />
</p>

この JavaScript で

$(document).on("click", "input.receive", function () {
  var mat = $(this).siblings("[name='mat_id']").data("id");
  var qty = $(this).siblings("[name='rec_qty']").val();
  alert("mat id: " + mat + " qty val: " + qty);
});

このアプローチでは、データ ストレージではなくノード識別用に設計されたid 属性を悪用することはありません。

于 2013-01-08T19:37:27.043 に答える