2016-09-16 111 views
2

我有HTML在Ajax调用返回给我:如何在另一个dom元素中找到一个dom元素?

$.ajax({ 
    url: '/get-html', 
    dataType: 'html', 
    success: function(html) { 
     html = $(html); 
     .... 

在成功的方法,我希望能够找到容器DIV中的img标签在HTML var和改变它的ALT标签。

如果我做的:

html.find('img').attr('alt', 'new alt'); 

我们更新所有图像低价竞标。我怎样才能指定容器div的ALT?我试过这个:

html.find('.container img').attr('alt', 'new alt'); 

但它不工作。

仅供参考这里的HTML的例子在Ajax调用返回:

<div class="container"> 
    <img src="" alt="PLEASE CHANGE THIS ALT"> 
</div> 
<img src="" alt="LEAVE MY ALT ALONE"> 
<img src="" alt="LEAVE MY ALT ALONE"> 
+0

是100%肯定的是,示例不起作用。 – panthro

+6

'.container'是包装器,不是'html'的子元素。因此,使用'html.filter('。container')。find('img')' –

+0

eisbehr这不起作用。 – panthro

回答

0

尝试这 -

var html = '<div class="container"><img src="" alt="PLEASE CHANGE THIS ALT"/></div><img src="" alt="LEAVE MY ALT ALONE"/><img src="" alt="LEAVE MY ALT ALONE"/>'; 
 

 
//Print Your html Code before changing alt attr. 
 
$('body').append(html); 
 
$('body').append('<hr/>'); 
 

 
html = $(html); 
 

 
//Check img inside .div and change attr 
 
html.children('.container img').each(function() { 
 
    $(this).attr('alt', 'new alt'); 
 
    //Log changed attr 
 
    console.log($(this).attr('alt')); 
 
}); 
 
//Print Your html Code after changing alt attr. 
 
$('body').append(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

JSFiddle

相关问题