使用javascript获取页面标题和内部图像

时间:2015-07-05 19:50:51

标签: javascript jquery image get title

我有一个javascript,它带有一个具有特定ID的链接,并将图像从该页面放到此链接。

$('#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>

我需要得到&#34; Page name 2&#34;来自div with class&#34; title&#34;并在page1.html上有这样的结果:

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

1 个答案:

答案 0 :(得分:0)

首先,不要对不同的元素使用相同的id,id必须是唯一的

我们在讨论后得到的答案

$(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 + '">');
            }
        );
    });
});