将元素/标识符引用传递给函数



我正在构建我的几乎第一个JavaScript应用程序。我试图获得多个旋转器,如:
+ [0] -
+ [3] -
+ [0] -

我有以下代码来添加和减去旋转器值:

$('#plus').unbind('click').bind('click', function() {
    var value = $('#number').val();
    value++;
    $('#number').val(value);
});
$('#minus').unbind('click').bind('click', function() {
    var value = $('#number').val();
    if (value > 0) value--;
    $('#number').val(value);
});

和以下转轮标记:

<div data-role="controlgroup" data-type="horizontal" data-mini="true">
    <p><button id="plus" data-inline="true">    +</button>
    <input type="text" id="number" value="0" disabled="disabled" />
    <button id="minus" data-inline="true">-</button></p>
</div>

然而,我不明白如何将旋转器的标识符传递给加/减函数,即我不想编写多个加/减函数,每个旋转器一个。

感谢所有的帮助!

你可以这样做:

$('.plus').unbind('click').bind('click', function() {
    var numberControl = $(this).parent().find('.number'), value = numberControl.val();
    value++;
    numberControl.val(value);
});
$('.minus').unbind('click').bind('click', function() {
    var numberControl = $(this).parent().find('.number'), value = numberControl.val();
    if (value > 0) value--;
    numberControl.val(value);
});

JsFiddle例子:

http://jsfiddle.net/8C8c8/4/

  • 对于当前点击的按钮(在本例中为this),转到parent()find()类型为input的子按钮
  • 使用找到的元素获取/设置val

我建议您使用class而不是id,如果您的元素将存在超过1次。如果元素在HTML中只存在一次,则使用id。如果它将多次存在,那么你应该使用class .

最新更新