jQuery-通配符ID,如果首次出现失败,则条件值检查失败

时间:2018-10-10 10:56:46

标签: javascript jquery if-statement

我有以下简单的HTML:

        <dl>
            <dt>Percentage</dt>
            <dd><input type="text" id="percentage1" value="20"/></dd>
            <dt>Description</dt>
            <dd><input type="text" id="wastetype1" value="Inert - Mixed"/></dd>
        </dl>
        <dl>
            <dt>Percentage</dt>
            <dd><input type="text" id="percentage2" value="20"/></dd>
            <dt>Description</dt>
            <dd><input type="text" id="wastetype2" value="Brick"/></dd>
        </dl>
        <dl>
            <dt>Percentage</dt>
            <dd><input type="text" id="percentage3" value="60"/></dd>
            <dt>Description</dt>
            <dd><input type="text" id="wastetype3" value="Concrete"/></dd>
        </dl>

我想使用以下代码有条件地将这些字段的值添加到对象中:

if (($('[id^=percentage]').val().length > 0) || ($('[id^=wastetype]').val().length > 0)){
    var breakdownArray = [];
    $('[id^="percentage"]').each(function() {
        var thisId = $(this).attr('id').substring(10);
        if (($('#percentage'+thisId).val().length > 0) && ($('#wastetype'+thisId).val().length > 0)){
            var breakdownObject = {};
            breakdownObject.percentage = $('#percentage'+thisId).val();
            breakdownObject.description = $('#wastetype'+thisId).val();
            breakdownArray.push(breakdownObject);
        }
    });
    postData.breakdown = breakdownArray;
}

if语句让我特别烦恼

if (($('[id^=percentage]').val().length > 0) || ($('[id^=wastetype]').val().length > 0))

我希望与这些ID匹配的任何字段中的任何一个都具有值。

但是,如果percent1和wastetype1为空,则无论其他字段中是否有其他值,整个'if'语句都会失败。

如果我将percent3和wastetype3留为空白,则效果很好。

如果第一组字段为空,则整个操作似乎会失败,但其他字段中的任何一个都不为空?!?

任何帮助,将不胜感激。

0 个答案:

没有答案