2012-03-26 41 views
0

我想创建一个页面,用户粘贴他们的视频代码并点击go按钮。当他们这样做时,我希望我的参数被附加到他们粘贴的参数上。我似乎无法弄清楚如何获取现有值并添加参数。这是在一个对象标签内。任何帮助表示赞赏。这里的代码:使用jquery添加参数到视频代码

Enter code for video:<br /> 
    <textarea rows="15" cols="50" name="code" id="code"></textarea><br /> 
    <button id="go">Go</button><br /><br /> 
    <script> 

    jQuery('#go').click(function() { 
    $("#code").val(function(i, vals) { 
     var myParams = "<param name=\"includeAPI\" value=\"true\" />"; 
     var $codes = $(vals).find('param').appendTo(myParams); 

     vals += $codes; 
      return vals; 
     }); 
     }); 

    </script> 

这个脚本只是给了我原来的粘贴加上[对象对象]在最后。

剪断的视频编码

<object id="video" class="video_page"> 
<param name="bgcolor" value="#FFFFFF" /> 
<param name="width" value="480" /> 
<param name="height" value="270" /> 
<param name="playerID" value="1412222" /> 
<param name="playerKey" value="556555dw4ff4r" /> 
</object> 

回答

1

我相信下面的脚本会给你想要的结果:

<script> 

    jQuery('#go').click(function() { 
    $("#code").val(function(i, vals) { 
     var myParams = '<param name=\"includeAPI\" value=\"true\" />'; 
     vals = vals.substring(0,vals.indexOf('</object>')); 
     vals += myParams + '\n</object>'; 
     return vals; 
     }); 
     }); 

    </script> 

编辑:变化处理额外的输入:

<script> 

    jQuery('#go').click(function() { 
    $("#code").val(function(i, vals) { 
     var myParams = '<param name=\"includeAPI\" value=\"true\" />'; 
     valend = vals.substring(vals.indexOf('</object>')); 
     vals = vals.substring(0,vals.indexOf('</object>')); 
     vals += myParams + valend; 
     return vals; 
     }); 
     }); 

    </script> 
+0

谢谢。虽然它可以去除在简洁的情况下我没有粘贴的对象之后的代码。我会研究如何将其添加回来。 – 2012-03-26 20:16:19

+0

啊,是的,没想到你可能会有额外的输入......这个变化会处理: – redlena 2012-03-26 20:44:26

+0

谢谢。这非常有帮助! – 2012-03-26 20:52:05

0

您正在试图连接具有在该行的字符串对象:

vals += $codes; 

您只需要在textarea中添加值即可:

jQuery('#go').click(function() { 
     $("#code").val(function(i, vals) { 
      var myParams = "\n<param name=\"includeAPI\" value=\"true\" />"; 
      vals += myParams; 
      return vals; 
     }); 
    }); 

DEMO:http://jsfiddle.net/nxQ7g/

编辑:对于浏览器中的对象识别新PARAM你可能有一个新的和修订来替换现有的对象。添加到上面的代码:

var object=$('<object>').attr({id: 'video', class:'video_page'}).html($("#code").val()); 

$('#video').replaceWith(object) 
+0

我能够做到这一点,但我需要将参数添加到其他参数所在的对象标签内。此方法将参数放置在 – 2012-03-26 18:18:17

+0

之外,这不是您的问题所暗示的。 – charlietfl 2012-03-26 18:20:58

+0

添加了一个修订,以取代existng对象 – charlietfl 2012-03-26 18:31:28

0
$('#video').append($('<param />').attr({'name':yourName, 'value':yourVal})); 

将一个参数添加到您的视频