jquery选择标记新元素

时间:2014-12-06 19:05:27

标签: jquery addclass jquery-chosen

我在表单中使用jQuery plugin chosen。我想标记新元素,以便在表单提交时将它们添加到数据库中。

我在尝试:

$('#id_tags').chosen({
    display_selected_options: false,
    create_option: function(term) {
        var chosen = this;
        $.ajax({
            type: 'POST',
            url: '/aj/tag/neu/',
            data: {
                tag_name: term
            }
        }).done(function(data) {
            chosen.append_option({
              value: data.tag_id,
              text: data.tag_name
            });
            $('li.search-choice:contains(' + data.tag_name +')').addClass("new");
        });
    }, ...
}

它适用于每个新的 est 元素,即最近添加的元素A添加了“new”类,但是当添加另一个元素B时,从A中删除“new”类。并且只出现在B.

<ul class="chosen-choices">
  <li class="search-choice"><span>A</span><a data-option-array-index="1" class="search-choice-close"></a></li>
  <li class="search-choice new"><span>B</span><a data-option-array-index="174" class="search-choice-close"></a></li>
</ul>

为什么?或者我如何能够为所有添加的元素提供持久性标记?

1 个答案:

答案 0 :(得分:0)

您必须将该类添加到真实&lt;选项&gt;元素,然后做一个

$('#myRealSelect').trigger('chosen:updated');

并且您的课程将保留在您选择的列表中。