首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery获取元素attibute值并从中创建变量。

jquery获取元素attibute值并从中创建变量。
EN

Stack Overflow用户
提问于 2012-04-05 10:31:36
回答 3查看 136关注 0票数 0

有谁能帮我解决这个问题吗。

我正在调整一些闪存对象/嵌入代码的大小,以适应使用jquery的浏览器窗口。请参阅下面的HTML。

代码语言:javascript
复制
<div id="prezi">

     <object id="prezi_3453246342644353463435463456435" width="1000" height="800">

          <embed width="1000" height="800" ></embed>

     </object>

</div>

JQUERY (此工作)

代码语言:javascript
复制
function preziresize() {

    var $objectId =       $('#prezi_3453246342644353463435463456435'),
        $objectEmbed =    $objectId.find('embed'),
        windowWidth =     $(window).width(),
        windowHeight =    $(window).height();

        $objectId.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );

        $objectEmbed.attr( 'height' , windowHeight ).attr( 'width' , windowWidth ); 

}

$(document).ready(function() {

    preziresize();

});

$(window).resize(function() {

    preziresize();

});

我的问题

但上面脚本的缺点是,我必须手动将对象的ID放入脚本中。:(

在我的新脚本上,它不起作用,我试图自动获取对象的id,并将其赋值为变量。请看下面我的功能。

代码语言:javascript
复制
function preziresize() {

    var $objectId =     $('#prezi').attr( 'id' ),
        $objectEmbed =  $objectId.find('embed'),
        windowWidth =   $(window).width(),
        windowHeight =  $(window).height();

        $objectId.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );

        $objectEmbed.attr( 'height' , windowHeight ).attr( 'width' , windowWidth ); 

}

任何指点都是非常感谢的。

乔希

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-05 10:34:12

编辑:,您最好也在调整大小时执行它。

代码语言:javascript
复制
$(window).bind("resize.preziresize", function() {
   $('div#prezi object')
       .find('embed')
       .andSelf()
       .attr( 'height' , $(window).height() )
       .attr( 'width' , $(window).width() );
}).trigger("resize.preziresize");
票数 3
EN

Stack Overflow用户

发布于 2012-04-05 10:34:04

代码语言:javascript
复制
var $object =     $('#prezi').find("object"),
    $objectEmbed =  $object.find('embed'),
票数 2
EN

Stack Overflow用户

发布于 2012-04-05 10:36:57

这段代码没有多大意义,sinse $("#prezi")意味着您已经知道它是id,它是"prezi“。代码的另一个问题是,$objectId是一个字符串,而不是jQuery对象,因此不能在其上使用.find。试试这个:

代码语言:javascript
复制
function preziresize() {    
    var $object =       $('#prezi object'),
        $objectId =     $object.attr('id')
        $objectEmbed =  $object.find('embed'),
        windowWidth =   $(window).width(),
        windowHeight =  $(window).height();

        $object.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );
        $objectEmbed.attr( 'height' , windowHeight ).attr( 'width' , windowWidth ); 
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10026928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档