所以我有这个JS代码,可从php文件中提取JSON。这样可行。我想做的是在将JSON值放入DOM之前先对其进行更改,以用较低分辨率的图像替换图像URL。您将在调用mobile()函数的IF语句中看到此内容的开头

开始了:

$.post(url, project, function(data, textStatus) {
  $(data.tags).each(function(i, item){
    projectTags += "<span class='project-tag'>"+item+"</span>";
  });

  $(data.slides).each(function(i, item){

    if ((mobile() == true && $(window).width() <= 680)){
      if (i != 0){
        console.log('Before' +item);
        var newItem = JSON.stringify(item);
        $(newItem).replace('.png','-lofi.png');
        console.log(newItem);

        console.log('After' + item);
      }
    }

    projectImages += "<div class=\"slide-container\">" + item + "</div>";
    console.log(projectImages);
  });
  setTimeout(function(){
    btnAbout.removeClass('active');
    sectionDetail
      .attr('data-id', data.id)
      .find('.project-name').html(data.name).end()
      .find('.project-year').html(data.year).end()
      .find('.project-agency').html(data.agency).end()
      .find('.project-details').html(data.details).end()
      .find('.project-tags').html(projectTags).end()
      .find('#slideshow').html(projectImages);
}, "json");


是什么赋予了?我要做的就是替换比iPad小的移动设备的JSON值的URL。

编辑:由James修复!谢谢,兄弟!最终代码如下。

$.post(url, project, function(data, textStatus) {
  $(data.tags).each(function(i, item){
    projectTags += "<span class='project-tag'>"+item+"</span>";
  });

  $(data.slides).each(function(i, item){
    var loFi = JSON.stringify(item);
    if ((mobile() == true && $(window).width() <= 680)){
      if (i != 0){
        loFi = loFi.replace(/(.png)/g,'-lofi.png')
        loFi = $.parseJSON(loFi);
        item = loFi;
      }
    }
    projectImages += "<div class=\"slide-container\">" + item + "</div>";

  });
  setTimeout(function(){
    btnAbout.removeClass('active');
    sectionDetail
      .attr('data-id', data.id)
      .find('.project-name').html(data.name).end()
      .find('.project-year').html(data.year).end()
      .find('.project-agency').html(data.agency).end()
      .find('.project-details').html(data.details).end()
      .find('.project-tags').html(projectTags).end()
      .find('#slideshow').html(projectImages);
}, "json");

最佳答案

$(data.slides).each(function(i, item){

var newItem = JSON.stringify(item);  <-- Add this early

if ((mobile() == true && $(window).width() <= 680)){
  if (i != 0){
    console.log('Before' +item);
    newItem = newItem.replace(/(.png)/g,'-lofi.png');
    console.log(newItem);

    console.log('After' + item);
  }
}


您还在这里添加常规商品吗?您对项目所做的任何更改都不会反映出来。

projectImages += "<div class=\"slide-container\">" + item + "</div>";


改成

projectImages += "<div class=\"slide-container\">" + newItem + "</div>";

10-05 20:53
查看更多