0

大家好?你能帮我解决这个问题吗?我想在特定的p 标签中获取第一个输入的 id 和第二个输入的文本值

 <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);
        });
});

而且我不知道把这个放在我的变量 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 回答