通过jQuery设置HTML <param />元素?

时间:2012-05-24 22:24:45

标签: javascript jquery

JS / JQuery Newb here!

我有一个存储在变量中的值,我需要将其插入与<parameter>关联的特定<object>元素中。这是我希望能做的一个例子:

<script>

    function SetParam(incomingValue){
         $('#baz').value = incomingValue ;
    }

    $(document).ready (function() {

       // jquery POST happens here, which takes a second or two to complete
       // SUCCESS condition calls SetParam() with a value  

        });
</script>

<object class="foo">
    <param name="bar" value="xyzzy" />
   <param name="baz" value="" id="baz" />
</object>

没有快乐。 baz参数控制对象在视觉上的呈现方式,我看不到任何更改,表明我已成功更改了值。

我不确定是否:

A。我在SetParam()

中解决“baz”参数方面的语法错误

B。我的语法很好,但是当我点击SetParam()时对象已经呈现,所以设置baz的值没有任何用处

C。以上所有

有人能踢我正确的方向吗?

(如果我的问题包括方案“B” - 有没有办法延迟加载<object>,直到我实际设置了我需要的<parameter>的值?)

这是一个相同的“JSFiddle” - 刚刚发现了关于这个和jsbin。活泉!

http://jsfiddle.net/sPhrw/

2 个答案:

答案 0 :(得分:5)

您需要使用普通的javascript或jQuery:

$('#baz').val(incomingValue);

$('#baz')[0].value = incomingValue;

document.getElementById('baz').value = incomingValue; 

function SetParam(incomingValue){
     var $foo = $('<object class="foo"></object>'),
         $bar = $('<param name="bar" value="xyzzy" />'),
         $baz = $('<param name="baz" value="'+ incomingValue +'" id="baz" />');
         $foo.append($bar).append($baz).appendTo(someParent);
}

答案 1 :(得分:1)

您需要更换适合您情况的变量和值:

$( document ).ready( function () {
    var obj = $( '<object class="foo"></object>' );
    obj.append( '<param name="bar" value="xyzzy"></param>' );

    $.ajax({
        // other parameters
        success: function (response) {
            obj
                .append( '<param name="baz" value="' + response + '"></param>' )
                .appendTo( 'body' );
        }
    });
});