jquery attr()值是不是被替换了?

时间:2012-01-11 00:01:57

标签: jquery

第一次在这里发帖,看了几个可能的类似标题,仍然没有...... :(

尝试使用jQuery / javascript了解最新信息。好吧,我的问题是我想改变我的锚元素的href属性值,具体取决于doc宽度是否低于1022px。我已经能够成功提醒href值,但是我的注释ALERT(工作)我的href字符串没有更新...不知道为什么,任何帮助将不胜感激。

if(document.width < 1022)
{
    var allLinks = $('.filtered_portfolio li a');
    allLinks.each(function(){
        var thisLink = $(this);
        anchorLinkUrl = this
        alert (anchorLinkUrl);

        if( anchorLinkUrl.indexOf('[iframe]=true&lightbox[width]=800&lightbox[height]=540') != -1){
            anchorLinkUrl.replace('[iframe]=true&lightbox[width]=800&lightbox[height]=540','donkey');
            //alert('hi');
        }
    });
}    

2 个答案:

答案 0 :(得分:1)

为您的anchorLinkUrl变量分配了DOM元素,而不仅仅是href值。要更新链接的href,请尝试此操作(未经测试):

if(document.width < 1022)
        {
            $('.filtered_portfolio li a').each(function(){
                this.href = this.href.replace('[iframe]=true&lightbox[width]=800&lightbox[height]=540','donkey');
                });
        }

答案 1 :(得分:0)

Here是一个如何使用jQuery的.attr()函数来获取/设置所选元素的属性的示例,希望这会有所帮助。

$('a').toggle(function(e) {
    e.preventDefault();
    // setting an attribute
    $(this).attr('href', 'www.yahoo.com');
},function(e) {
    e.preventDefault();
    // setting an attribute 
    $(this).attr('href', 'www.google.com');
}).click(function(e) {
    e.preventDefault();
    // getting an attribute
    $('#foo').text($(this).attr('href'));
});