Jquery在附加之前更改val的attr

时间:2011-02-06 03:40:56

标签: jquery attr

我有一个textarea字段,用户可以在其中输入youtube嵌入代码,然后在提交时抓取textarea的val并将其附加到body。我想在嵌入代码中将?id = 123添加到src的末尾,然后再将其附加到body。最简单的方法是什么?附加值应该是带有修改过的src

的iframe代码

嵌入代码看起来像

<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/aemXgP-2xyg" frameborder="0" allowfullscreen></iframe>

更新代码

                var value = $('textarea').val();
                var wmode = '?id=123';
                var value1 = $(value).attr("src", $(value).attr("src") + wmode);                 
                var code = $('<div class="abs embed" id="embedId">' + value1 + '<span class="move"></span></div>');                 
                $(code).appendTo(...

4 个答案:

答案 0 :(得分:2)

var code = $("#TEXTAREA").val();
var appCode = $(code);
appCode.attr("src", appCode.attr("src") + "?id=123").appendTo($("#parentDiv"));

答案 1 :(得分:1)

var iframe = $($("textarea").val());
iframe.attr("src", function(i,v) { return v + '?id=123'; }).appendTo("body");

(使用ŠimeVidas的解决方案更新)

编辑:如果您有萤火虫,在此页面上,您可以在textarea中复制/粘贴iframe代码,并在控制台中运行此代码:

var lol = $("textarea").val()
var iframe = $(lol);
var test = iframe.attr("src", function(i,v) { return v + '?id=123'; })
test.appendTo("body");

youtube视频应该插在页面的末尾。

编辑2:要在更新中执行您想要的操作,请尝试:

var value = $('textarea').val(),
wmode = '?wmode=transparent',
value1 = $(value).attr("src", $(value).attr("src") + wmode),
span = $('<span class="move"></span>'),
div = $('<div class="abs embed" id="embedId"></div>');
div.append(value1).append(span).appendTo("body");

答案 2 :(得分:0)

所有发布的解决方案都很好并且可以工作,但我更愿意只删除src(如果它存在),然后查看它是否真的是一个有效的视频源。如果你让他们输入html,你会冒很大的风险!

看看Facebook,你可以输入一个链接,他会识别它是什么,如果用户可以直接传入youtube链接,而不是搜索整个嵌入代码,那么用户就会更好!安全第一!

答案 3 :(得分:0)

$(ta.value).attr('src', function(i,v) { return v + s; }).appendTo('body'); 

...其中s是您要添加到src属性的字符串
......和ts TEXTAREA元素