【问题标题】:How to apply a class to the result of a jQuery ajax call?如何将类应用于 jQuery ajax 调用的结果?
【发布时间】:2016-03-16 00:36:45
【问题描述】:

我已经尝试找到答案,但没有成功。

我有以下代码:

jQuery("#categories_parent_id").change(function() {
            id = jQuery("#categories_parent_id").val();
            jQuery.ajax({
                type: "GET",
                url: 'index.php?option=com_jomdirectory&task=getselect&format=raw',
                dataType: "html",
                data: "id=" + id,
                success: function(data) {
                    jQuery('#selectlist').html(data);
                }
            });
        });

ajax 结果选择应该有类“form-control”和“chosen-select”,我尝试将它们添加到 ajax 视图本身,但它没有样式。

我将如何在 ajax 结果之后将有问题的类添加到特定的选择中?

谢谢

J

【问题讨论】:

  • 这真的很像XY problem,因为我猜你想要的是在这些元素上初始化选择的插件。添加类chosen-select 不会这样做,而是在新添加的元素上调用插件
  • @A.Wolff 正是因为像你这样的人,Stack Overflow 才应该有“给这个人买啤酒”的功能。因为你值得喝啤酒。

标签: php jquery css ajax


【解决方案1】:

尝试使用.find()在html数据中找到一个元素,然后addClass()找到它

jQuery('#selectlist').html(data).find('select').addClass('form-control chosen-select');

【讨论】:

  • 嗨 Mohamed-Yousef,这确实添加了类,但样式保持默认。
  • @Jacques 你问错了问题...初始化选择的插件而不是jQuery('#selectlist').html(data).find('select').chosen()
【解决方案2】:

稍后编辑,正如@A.Wolff 提到的,您需要在新添加的选择元素上调用插件。

success: function(data) {
    jQuery('#selectlist').html(data).find('select').chosen();
}

使用.addClass()

success: function(data) {
    jQuery('#selectlist').html(data).addClass("form-control chosen-select");
}

【讨论】:

  • 嗨,Alex - 这会将样式应用于#selectlist div(这是选择的容器)而不是选择本身。
  • 好的,所以选择在 ajax 响应本身内,请参阅@Mohamed-Yousef 的答案,它应该可以正常工作,您只需在 dataaddClass 中找到选择元素
  • select 是否有可以引用的 id 或类?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
相关资源
最近更新 更多