jquery获取元素属性值并从中创建变量

时间:2012-04-05 10:31:37

标签: jquery

任何人都可以帮我解决这个问题。

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

HTML

<div id="prezi">

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

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

     </object>

</div>

JQUERY(此作品)

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,并将其指定为变量。请参阅下面的功能。

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 ); 

}


任何指针都会非常感谢。

乔什

3 个答案:

答案 0 :(得分:3)

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

$(window).bind("resize.preziresize", function() {
   $('div#prezi object')
       .find('embed')
       .andSelf()
       .attr( 'height' , $(window).height() )
       .attr( 'width' , $(window).width() );
}).trigger("resize.preziresize");

答案 1 :(得分:2)

var $object =     $('#prezi').find("object"),
    $objectEmbed =  $object.find('embed'),

答案 2 :(得分:-1)

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

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 ); 
}