我正在尝试使用jquery,并认为让我的链接从其来源获取内容会很舒服。我不确定它是否可能。
<a href="page1.html" >pagetitle</a>
<a href="page2.html" >pagetitle</a>
我想要实现的是替换&#34; pagetitle&#34;来自#title id的文本,例如:&#34;我的第1页和第34页;来自目标,每个链接,页面加载。
页面中的源元素:
<h1 id="title">My page 1</h1>
期望的输出:
<a href="page1.html" >My page 1</a>
<a href="page2.html" >My page 2</a>
我尝试了各种解决方案,但我无法实现所需的行为。 如果用jquery不可能,告诉我也会有所帮助!谢谢你的时间。
编辑:我尝试了一些基本的行:
这有效,但当然只有一页,所以显然每个标题都是一样的。
$( 'a' ).load( 'page1.html .title' ).text();
这些不会奏效,也许我有点笨拙!
$( 'a' ).load( 'a.attr("href") .title' ).text();
var distantcontent = $('a.attr("href")');
$( 'a' ).load( 'distantcontent .title' ).text();
答案 0 :(得分:0)
您需要遍历各个元素。像这样:
$('a').each(function() {
u = $(this).attr('href');
console.log('$(this).load(' + u + ' .title)');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="page1.html">My page 1</a>
<a href="page2.html">My page 2</a>
答案 1 :(得分:0)
试试这个...它适用于我制作的测试页。
请参阅代码中的注释。
$(document).ready(function(){
// Get all the href (If there is!)
var hrefArray = [];
$("a").each(function(){
if( $(this).attr("href") !="#" && $(this).attr("href") != "undefined" ){
hrefArray.push( $(this).attr("href") );
}
});
var i = 0;
function getTitles(href, i){
$.ajax({
url: href,
success: function(response){
// Stringify the result
var responseString = response.toString();
// Get the index of the title tag
var titleTagIndex = responseString.indexOf("<title>");
// If the title tag IS found
if(titleTagIndex != -1){
// Find the index of the title closing tag
var titleClosingTagIndex = responseString.indexOf("</title>");
// Get the sub-string between the two indexes we found.
title = responseString.substr(titleTagIndex+7,titleClosingTagIndex-(titleTagIndex+7));
console.log("Title found: "+title);
// Replace the link text.
$("a").eq(i).text(title);
}
// Get the next title
i++;
if(i<hrefArray.length){
getTitles(hrefArray[i], i);
}
},
error: function(request, status, error){
console.log(error);
}
})
}
// Get the first title
getTitles(hrefArray[i], i);
});
现在,使用ajax逐个请求标题 您会注意到它在加载时填充标题的延迟。
如果您的页面上还有外部链接,而不是$("a")
,请使用类定位您的“相同域”链接...因为ajax将在外部链接上失败并且只是停止循环。< / p>