jquery从页面上的标签获取href和文本,并在div中显示它们

时间:2011-03-26 22:31:49

标签: javascript jquery scripting

这是我的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,由半冒号分隔。 所以它看起来像这样: 链接;文本 链接;文本 ...

现在我得到: 链接 链接 文本 文本 ...

3 个答案:

答案 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(' '));