Изменить имя класса img из ответа ajax

#jquery #ajax

#jquery #ajax

Вопрос:

У меня есть следующий ответ ajax, который генерируется сценарием на стороне сервера:

 <div class="parent"><img class="icon" src="../images/icons/inv_boots.PNG"/></div>
<div class="item-title3">Testname</div>
<div class="item-level">20</div>
 

На данный момент я сохраняю тег изображения в переменной «значок» следующим образом;

 let icon = $content.siblings('[class^=parent]').html()
 

Теперь я хочу изменить имя класса изображения <img class="icon" на «icon22».

Пока это мой код:

 <script language="javascript">

jQuery(function($) {
  
  $('*[data-id]').each(function() {
    let $tooltip = $(this);
    let id = $tooltip.attr("data-id");

    $.ajax({ 
      url: "/datenbank/itemscript.php",
      type: "GET",
      data: {
        "var": id
      }
    }).then(function(data) {

      let $content = $(data);
      let title = $content.siblings('[class^=item-title]').text()
      let icon = $content.siblings('[class^=parent]').html()

     var item_title = $content.siblings('div[class*="item-title"]');
     console.log(item_title);
     var ClassName = '';
     var classes = item_title.attr('class').split(/(s )/); 
     $.each(classes , function(i , v){
     v = v.trim();  
     if(v.indexOf('item-title') > -1){  
    ClassName = v; 
    }
  }); 
      
      
  $tooltip.tooltip({
        tooltipClass: "test",
        content: data,
    position: {
      my: "left 153 top 20",
    collision: "flipfit"
    }

      });
      
       $("<div class=""   ClassName   "">"   icon   ""   title   "</div>").appendTo($tooltip);
    });
  });
    
});
</script>

<a data-id="12555"></a>
 

Комментарии:

1. Привет, ты можешь попробовать $content.siblings('[class^=parent]').find("img").addClass("icon22").removeClass("icon")

Ответ №1:

Учитывая, что $data это объект jQuery, содержащий ответ, вы можете использовать find() для извлечения img элемента внутри него, а затем toggleClass() :

 $content.find('img.icon').toggleClass('icon icon22');