点击时获取OptionID的价值?

时间:2011-04-13 13:03:58

标签: javascript jquery

点击添加(OptionID)链接后如何获得.plus-link的值?

每个li可能包含select(下拉列表)或没有它。

    <ul>

  <li>
    <div class="menux">
        <div class="text-block">
            <div class="text-holder">
                <h3>  Item Name </h3>
                <p> Description </p>
            </div>
        </div>
        <div optionid="46812" class="price"> <strong>£4.90</strong> </div>
        <div class="add-item">  <a class="plus-link" href="#">plus</a>  </div>
    </div>
</li>

<li>
    <div class="menux">
        <div class="text-block">
            <div class="text-holder">
                <h3> Item Name 2 </h3>                                                                                                      </h3>
                <p> Description  </p>
            </div>
        </div>
    </div>
    <form class="menu-form" action="#">
        <fieldset>
            <a class="plus-link" href="#">plus</a>
            <select id="optionid" class="select">
                <option value="1">9", £3.99</option>
                <option value="2">12", £5.49</option>
            </select>
        </fieldset>
    </form>
</li>

</ul>

Jquery的

$(document).ready(function() {
    $("li .plus-link").click(function(event) {
        event.preventDefault();
        alert( $(this).attr("OptionID") );
    });
});

3 个答案:

答案 0 :(得分:2)

你可以试试这个


在那里编辑稍微被误解的问题并更新新标记

$(document).ready(function() {
$("li .plus-link").click(function(event) {
    event.preventDefault();
    var prev = $(this).closest('li').find('#optionid, .price');
    var OptionId = prev.val() || prev.attr('optionid');
    console.log(OptionId);
});
});

http://jsfiddle.net/nickywaites/pTPr8/1/

的示例

答案 1 :(得分:2)

你想要抓住.siblings('。OptionID')。然后假设您只想要该组合框的值,您将使用.val()来获取所选值:

http://jsfiddle.net/MacAnthony/zzrrp/

修改

响应编辑试试这个。它将查找具有属性的select和div,并且应该能够遍历不是直接兄弟姐妹的树。

http://jsfiddle.net/MacAnthony/zzrrp/4/

答案 2 :(得分:0)

您正在尝试使用引用锚点的$(this)来获取属性OptionID。您应该使用prev()遍历树并获取selectbox值。

$(document).ready(function() {
    $("li .plus-link").click(function(event) {
        event.preventDefault();
        alert( $(this).prev(".OptionID").val() );
    });
});

在这种情况下。你应该使用

$(document).ready(function() {
    $("li .plus-link").click(function(event) {
        event.preventDefault();
        alert( $(this).siblings('.OptionID').val() );
    });
});