当尝试从最近的li标签vendor_id获取时,为什么它将undefined作为值

时间:2014-09-24 21:23:27

标签: jquery

我的HTML

<section id="Office" class="ulseWrap lielement activeRest ">
   <ul class="restListings">
      <div class="inner-intit">
         <sub class="sub">Yours Favorite Restaurant</sub><br>
         <li class="innerChild" user_location="Office" vendor_name="Raj Cool Drinks" vendor_id="1">
            <h6> Raj Cool Drinks</h6>
          </li>
         <input type="button" name="btn1" class="ordernow btn btn-success" value="Order Now" >
      </div>
   </ul>
</section>

单击ordernow按钮时,我需要获取li标签vendor_id

$(document).on('click', '.ordernow', function(event ) {
var  v_id = $(this).closest("li").attr('vendor_id');
alert(v_id);
});

这是小提琴的链接

http://jsfiddle.net/j2463tj3/

2 个答案:

答案 0 :(得分:1)

最近将会获取最近的父亲,即li

但是这里li是输入元素的兄弟。

$(this).closest("li").attr('vendor_id');

原来是

$(this).closest('inner-intit').find('li').attr('vendor_id');

$(this).prev('li').attr('vendor_id'); (If the input is always below the li)

<强> Check Fiddle

答案 1 :(得分:0)

如果它是唯一的,你可以使用它的css类名来找到它:

$(document).on('click', '.ordernow', function (event) {
  var v_id = $("li.innerChild").attr('vendor_id');
  alert(v_id);
});

或者给它id,如下所示:

<li id="MyNameisLi" class="innerChild" user_location="Office" vendor_name="Raj Cool Drinks" vendor_id="1">

然后调用它:

$(document).on('click', '.ordernow', function (event) {
var v_id = $("#MyNameisLi").attr('vendor_id');
alert(v_id);

});

因此有很多不同的方式来到达目的地。