2015-07-01 40 views
0

我試圖用jquery做一個簡單的減法。但我不知道如何獲得badge類的價值。JQuery - 嘗試按鈕單擊後得到最接近的ul

$(".click").on("click", function(e) { 
    var cost = $(this).closest("ul:first-child > span").text(); 
    alert(cost); 
    var user_points = $("user-points").text(); 
    $("span.user-points").text(user_points - cost); 
}); 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<span class="user-points">5</span> 

<ul> 
    <li> 
    <span class="badge">2</span> 
    </li> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li> 
    <button class="click">Click</button> 
    </li> 

</ul> 

回答

0

你可以嘗試:

$(".click").on("click", function(e) { 
     var cost = $(this).closest("ul").find("li").first().text(); 
     alert(cost); 
     var user_points = $(".user-points").text(); 
     $("span.user-points").text(user_points - cost); 
    }); 

在這裏看到:http://jsfiddle.net/zrxw00tp/6/

注意:您對「用戶點」參考失蹤一段時間爲好,所以也沒找到它。

編輯:我應該使用「最接近()」而不是「父母()」,如下面的評論中所述。

+0

謝謝。我也看到了那個失蹤的時期。 – Ciprian

+2

如果存在多個嵌套列表,請使用'nearest(「ul」)'而不是'parents(「ul」)''。 – Barmar

+0

好點,那會好很多。 – leemac