Javascript 更改文本区域内的图像属性

Javascript 更改文本区域内的图像属性,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有TinyMCE WYSIWYG文本编辑器。文本编辑器的textarea称为.seo\u textarea,在我点击提交后,我希望textarea中的所有图像都具有不同的数据属性。我的逻辑如下: $('.social_properties_form').on('submit', function(e) { e.preventDefault(); e.stopImmediatePropagation(); imgOpt

我有TinyMCE WYSIWYG文本编辑器。文本编辑器的
textarea
称为
.seo\u textarea
,在我点击提交后,我希望
textarea
中的所有图像都具有不同的
数据属性。我的逻辑如下:

  $('.social_properties_form').on('submit', function(e) {
            e.preventDefault();
            e.stopImmediatePropagation();

            imgOptimize();

                $.ajax({
                  type: 'POST',
                  url: '',
                  data: new FormData(this),
                  processData: false,
                  contentType: false,
                  success: function(data) {
                 window.location = "/profiles/articles.php";
                  }
                });
                }
        })

function imgOptimize(){
    $(".seo_textarea img").each(function(){
        var original = $(this).attr('src');
        $(this).attr('src', '/media/assets/loading-background.jpg');

        $(this).attr('data-src', original);

        var fileName = original.split('/').pop();

        $(this).attr('data-mobile-src', '/stories/media/images/mobile/' + fileName);
    });
}
在使用Ajax将信息转发给PHP提交时,将插入一个包含textarea值的新行。但是,textarea不包括图像的额外数据属性。相反,会显示原始的src,并且不会更改任何内容


我怎样才能在我的数据库表中获得新的数据属性和更改的src?

您似乎正在查看
.textContents
而不是
.seo\u textarea
。这是打字错误吗?或者这是你页面上的一个有效html元素吗?为了帮助回答问题,你能缩小问题的范围吗?。。。您是否已确定imgOptimize本身是否正常工作(即,如果您跳过AJAX调用,图像是否会获得其数据属性)?如果是这样,我认为您需要单独获取TinyMCE内容(例如,捕获TinyMCE.activeEditor.getContent({format:'raw'}并附加到AJAX负载),或者在新线程上调用AJAX(例如,setTimeout(doAjaxStuff,0))因为DOM可能还没有更新。@haxxxton很抱歉,你是对的。这是一个打字错误。我修正了它,thanks@SynexisimgOptimize适用于外部元素,例如,如果我们在该div中有一个div和一个图像:例如:对于textarea,但是,我认为它不起作用。我猜,“.seo\u textarea”已被tinyMCE取代(例如,使用iFrame,尽管这取决于您的设置),因此imgooptimize中的jQuery选择器实际上不会选择任何内容。使用tinyMCE API有许多可能的方法,但我实现了选择新编辑器,然后捕获其内容的基本概念——这有帮助吗?