在单击按钮jquery上获取未定义的attr id

时间:2016-06-17 06:45:07

标签: jquery

<select class="form-control newclass addvalue input_color" name="CandInv-54" id="sugar_id">
    <option value="">Select Value</option>
    <option selected value="ABSENT">ABSENT</option>
    <option value="1">ADD</option>
</select>

<div id="sssugar_id"> 
    <input id="myInput2" class="form-control" required="" placeholder="Fill  Value Or Select Dropdown" style="margin-top: 5px;border-color: green;border-width: medium;" type="text">
    <button type="button" id="mybtn2" class="btn btn-success button_class" style="margin-top: 5px;" onclick="addtest()">ADD</button>
</div>

<script>
    function addtest(){
        var xyz = $('#mybtn2').prev('select').attr('id');
        alert('id ' + xyz);
    }
</script>

3 个答案:

答案 0 :(得分:0)

问题是因为select不是#mybtn2的兄弟,所以prev()不会返回任何元素。相反,您需要使用parent().prev('#mybtn2'),如下所示:

function addtest() {
  var xyz = $('#mybtn2').parent().prev('select').prop('id');
  alert('id ' + xyz);
}

另请注意,使用不显眼的javascript而不是过时的on*事件属性来附加事件处理程序会更好。当你使用jQuery时,你可以这样做:

$('#mybtn2').click(function() {
  var xyz = $(this).parent().prev('select').prop('id');
  alert('id ' + xyz);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control newclass addvalue input_color" name="CandInv-54" id="sugar_id">
  <option value="">Select Value</option>
  <option selected value="ABSENT">ABSENT</option>
  <option value="1">ADD</option>
</select>

<div id="sssugar_id">
  <input id="myInput2" class="form-control" required="" placeholder="Fill  Value Or Select Dropdown" style="margin-top: 5px;border-color: green;border-width: medium;" type="text">
  <button type="button" id="mybtn2" class="btn btn-success button_class" style="margin-top: 5px;">ADD</button>
</div>

答案 1 :(得分:0)

添加parent('div')以获取选择框。

function addtest(){
        var xyz = $('#mybtn2').parent('div').prev('select').attr('id');
        alert('id: ' + xyz);
 }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<select class="form-control newclass addvalue input_color" name="CandInv-54" id="sugar_id">
    <option value="">Select Value</option>
    <option selected value="ABSENT">ABSENT</option>
    <option value="1">ADD</option>
</select>

<div id="sssugar_id"> 
    <input id="myInput2" class="form-control" required="" placeholder="Fill  Value Or Select Dropdown" style="margin-top: 5px;border-color: green;border-width: medium;" type="text">
    <button type="button" id="mybtn2" class="btn btn-success button_class" style="margin-top: 5px;" onclick="addtest()">ADD</button>
</div>

答案 2 :(得分:0)

要获得预期的结果,请使用以下选项,首先选择按钮的父元素,然后选择属性id的上一个元素选择和获取的值

       $('#mybtn2').parent().prev('select').attr('id');
        alert('id ' + xyz);
     }