【问题标题】:Why am I getting an error when I try to get the height of an element from a rel tag?当我尝试从 rel 标签中获取元素的高度时,为什么会出现错误?
【发布时间】:2013-09-24 22:48:56
【问题描述】:

我正在尝试构建功能,当您单击具有引用该元素的 rel 标签的链接时,可以显示更多元素。

    <div class="reveal-more"><a href="#" rel="#new-deals">View More Deals &#9660;</a></div>

$(".reveal-more a").click( function() {
    var moreContainer = $(this).attr('rel');
    var moreContainerHeight = $("'" + moreContainer + "'").height;
    alert(moreContainerHeight);

    return false;
});

Chrome 不断抛出错误 - 语法错误,无法识别的表达式:'#new-deals'

【问题讨论】:

    标签: jquery rel


    【解决方案1】:

    您似乎对变量的包装有问题,尝试将代码更改为以下内容,我发现它可以正常工作。代码如下:

    <div class="reveal-more"><a href="#" rel="#new-deals">View More Deals &#9660;</a></div>
    
        $(".reveal-more a").click( function() {
            var moreContainer = $(this).attr('rel');
            var moreContainerHeight = $(moreContainer).height();
            alert(moreContainerHeight);
    
            return false;
        });
    

    我相信您的问题是您有一个字符串对象,并且当 jQuery 自动处理此问题时,您将字符串包装在 '' 中。

    编辑:修改代码

    【讨论】:

    • 是的,我试过它也运行但不输出高度它会提醒 JQuery 的第 4 行。即 - function(i,o){... 等几行。
    • 对不起,.height() 是一个函数,而不是一个变量。所以你必须把.height改成.height()
    【解决方案2】:

    我想是因为你要求一个班级的高度。

    确实需要询问身份证的高度。

    一个类可能与一系列具有不同高度的 div 相关。

    【讨论】:

    • #new-deals 是对 id 的引用,而不是 .new-deals 的类
    • 我明白了,我的错误。但是#new-deals 与 标签相关,而不是 div,它是您要扩展的 div 不是吗?
    • 那不就是 var moreContainerHeight = $("'" + moreContainer + "'").parent().height;
    • 不,rel 标签是一种设置对 DOM 中另一个对象的引用的方法。现在我拥有它的方式应该程序将其读取为 $("#new-deals").height 这正是我想要从中提取高度的元素。
    • jQuery 似乎在你这样做之后再次包装它,所以它是无效的 javascript,因此出现错误,请参阅我找到的解决方案的答案。
    猜你喜欢
    • 2020-02-25
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多