jQuery - 使用ajax加载元素

时间:2014-11-03 08:16:10

标签: javascript jquery ajax

我搜索了一段时间,但找不到解决问题的方法(抱歉,如果我搜错了)...... 我想为一个用ajax加载的元素具有以下函数的等价物:

$(document).ready(function() {
    $('.div-modal-text').css("background-color","red");
});

因此我使用以下代码:

  $('#parent_id').on('action', '#id or class to be born', function to be performed() );

在我的示例中,父子结构是:#projectModals(其内容是动态加载的div)> ...> .div-project-description> .div-modal-text

这转换为我的示例中的以下代码:

  $('#projectModals').on('load', '.div-project-description', function() {  
      $(this).find('.div-modal-text').each(function() { 
           $(this).css("background-color","red");

    });
  });

我知道'load'不能与.on()一起使用,但是我尝试了不同的选择,但是找不到任何工作。

感谢您的帮助!

编辑:这是我的(简化)HTML代码:

    <div id="projectModals"></div>

使用Ajax在#projectModals中加载的内容:

      <div class="row">
        <div class="div-project-idcard">          
            column 1, don't bother too much about this column            
        </div>
        <div class="div-project-description"> 
          <div id="summary" class="div-modal-text">
            Column2, text 1               
          </div>
          <div id="purpose"  class="div-modal-text"">
            Column2, text 2
          </div>
          <div id="reforestation"  class="div-modal-text">
            Column2, text 3
          </div>
          <div id="certification"  class="div-modal-text">
            Column2, text 4
          </div>
        </div>          
      </div>

2 个答案:

答案 0 :(得分:0)

如果您正在等待通过ajax加载它,请考虑改为使用$(window).ajaxSuccess()

  $(window).ajaxSuccess(function(){
    $('#projectModals .div-project-description .div-modal-text').each(function() { 
        $(this).css("background-color","red");
    });
  });

答案 1 :(得分:0)

根据我的理解,你想在执行ajax之后改变一些背景颜色。

我认为最好让ajax成功运作

$.ajax({
    url: "some url",
    data: {some data},
    success: onAjaxSuccess,
});

然后;

function onAjaxSuccess(data){
    //.. do things with data
    var toExecute = $('#projectModals .div-project-description');
    toExecute.find('.div-modal-text').each(function() { 
           $(this).css("background-color","red");
    });
}