2015-07-05 4 views
0

У меня есть javascript, который берет ссылку на определенный идентификатор и помещает изображение на эти ссылки с этой страницы.Получить название страницы и внутреннее изображение с помощью javascript

$('#link').each(function(){ 
    var c=$(this), 
     o=c.parent(), 
     url=this.href, 
     m='/images/no-img.jpg'; 

    $.get(url,function(d){ 
     var s=m; 
     var b=$(d).find('.post-text img')||false; 
     if(b){ 
     for(var i=0,j=b.length;i<j;i++){ 
      if(!/(ucoz.net|download.png)/i.test(b[i].src)){ 
      s=b[i].src; 
      break; 
      } 
     } 
     } 
     o.prepend('<img src="'+s+'" />); 
    }); 
}); 

Я хочу добавить название страницы из div, но не название страницы.

Например

Это ссылка на page1.html:

<a id="link" href="/page2.html">page2</a> 

Это как page2.html выглядит

<body> 
<div class="title">Page name 2</div> 
<div class="post-text"> 
<img src="/img.jpg" /> 
This is a post text. 
</div> 
</body> 

Мне нужно получить «Page имя 2 "из div с классом" title "и получить такой результат на странице1.html:

<img src="/page2/img.jpg" /><a id="link" href="/page2.html">Page name 2</a> 

ответ

0

Во-первых, не используйте один и тот же идентификатор для различных элементов, идентификатор должен быть уникальным

Ответ, что мы достигли после обсуждения

$(document).ready(function() 
{ 
    $('a').each(function() 
    { 
     var _this = $(this); 
     var href = _this.attr('href'); 

     $.get(
      href, 
      function(data) 
      { 
       var html = $(data); 
       var titleNode = html.find('.title'); 
       var imageNodes = html.find('.post-text img'); 
       imageNodes = imageNodes.filter(function() 
       { 
        return !$(this).attr('src').match(/ucoz\.net|download\.png/i); 
       }); 

       if (imageNodes.length) 
       { 
        var src = imageNodes.first().attr('src'); 

        if (/.+\..+\//.test(src)) 
        { 
         var imageSrc = src; 
        } 
        else 
        { 
         imageSrc = href.replace(/\.html$/, ''); // remove .html from href="/page2.html" 
         imageSrc += '/'; 
         imageSrc += src.replace(/^\//, '') // remove first/to avoid // 
        } 
       } 
       else 
       { 
        imageSrc = '/images/no-img.jpg'; 
       } 

       _this.html(titleNode.text()); 
       _this.before('<img src="' + imageSrc + '">'); 
      } 
     ); 
    }); 
});