无法格式化.join()分隔符

时间:2014-08-10 04:22:23

标签: javascript jquery twitter-bootstrap

在twitter bootstrap向导页面上工作,并将选定的复选框值输出到下一个选项卡窗格。因为可以有多个选择(即:选中),所以我使用map函数和join()。我试图将每个输出包装在<li>中,但第一个项目不会被包裹 - 只有第一个项目之后的每个项目。

例如

复选框1
<li>复选框2 </li>
<li>复选框3 </li>

这是我的代码:

$(document).ready(function() {
        $('#rootwizard').bootstrapWizard({
            onNext: function(tab, navigation, index) {
                if (index == 1) {
                    if (!$('.selection:checked').val()) {
                        alert('Please select a solution to try');
                        $('.selection').focus();
                        return false;
                    }
                }
                $('#showSelection').html($('.selection:checked').map(function() {
                    return $(this).val();
                }).get().join('<li>'));
            }
        });

不确定我是否应该使用其他方法?或者...如果有预先附加的方法并强制分隔符&#34; wrap&#34;围绕所有选择。任何洞察力/清晰度都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

尝试这样做:

$('#showSelection').html('<li>' + $('.selection:checked').map(function() {
  return $(this).val();
}).get().join('</li><li>') + '</li>);

这是因为连接的分隔符只会添加到元素之间,而不是在它们之前和之后,因此您的第一个元素将不会有开始li标记,而最后一个元素将没有结束{{ 1}}标签。