这是我的jquery代码:
$(document).ready(function() {
var contentText = $.ajax({
url: "index.php",
async: false
}).responseText;
$("#defaultData").append(contentText);
$('img').each(function(){
$(this).remove();
});
//delegate?
var test = 0;
var href = 0;
var title = 0;
$('.btn').click(function(){
var href = $('a').each(function() {
$(this).attr('href');
});
console.log(href);
var test = $('a').each(function() {
$(this).text();
});
console.log(test);
$.each(href, function(i, val) {
$("#data").append(i + " => " + val + "<br/>");
});
$.each(test, function(i, val) {
$("#data").append(i + " => " + val + "<br/>");
});
});
//for (var i = 0; 50; i++) {
//var pageNum = $("a#specificLink").attr("href").match(/page=([0-9]+)/)[1];
});
此代码的作用: 它获取一个页面(index.php)打印它,删除图像并从所有a-tags获取href和文本。
第一个问题: 文本 应该给我:链接和文字 但它给了我链接和链接:s 我真的不明白这个
第二个问题: 另外,我想将href和文本附加到div,由半冒号分隔。 所以它看起来像这样: 链接;文本 链接;文本 ...
现在我得到: 链接 链接 文本 文本 ...
答案 0 :(得分:1)
我不认为$('selector')。each()旨在返回值。您应该在循环中填充变量,如下所示:
var href = []
$('a').each(function() {
href.push($(this).attr('href'))
})
console.log(href)
答案 1 :(得分:1)
这应该为您提供所有link;text link;text
var test = "";
$('a').each(function() {
test += $(this).attr('href') + ';';
test += $(this).text() + ' ';
});
alert(test);
您最终获得链接的原因;链接;链接然后是文本;文本..是因为您正在处理所有链接
$.each(href, function(i, val) {
$("#data").append(i + " => " + val + "<br/>");
});
甚至在处理文本之前。如上所示同时添加它们。
答案 2 :(得分:1)
要添加,您似乎正在使用.each
.map
应该使用的方式:
var href = $('a').map(function() {
return this.href + ';' + $(this).text();
}).get();
$("#data").append(href.join(' '));