gpt4 book ai didi

javascript - 删除先前 append 的内容后,append() 不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 04:15:07 25 4
gpt4 key购买 nike

我将用户输入的 url 转换为 bbcode 并将其 append 到文本区域,但是在删除我 append 的其中一行后,它不会 append 更多(但你可以在 Firebug 中看到新 append 的值,真的很奇怪)。这是我的代码:

$(function(){
$(".addUrl").click(function(){
$("#addUrl").slideDown();
})
$('#su').click(function(){
if($("#u").val().length>3)
addUrl($("#u").val());
$("#u").val("");
})
$("input[value=\"x\"]").click(function(){$("#addUrl").fadeOut();})
})
function addUrl(e)
{
patt="http[s]*:\/\/";
if(e.match(patt))
u=e;
else
u="http://"+e;
$("textarea[name=\"content\"]").append("\n\r[url]"+u+"[/url]\n\r");
}

这是 jsfiddle:http://jsfiddle.net/FpSsc/

最佳答案

这是因为您正在更改 textarea 中的 html,这是默认值。似乎只要您设置了一个新值(通过在文本框中键入或删除某些内容),这个默认值就会被忽略。

要解决这个问题,您需要设置文本区域的值而不是 append 到内容:

function addUrl(e)
{
patt="http[s]*:\/\/";
if(e.match(patt))
u=e;
else
u="http://"+e;

var newVal = $("textarea[name=\"content\"]").val() + "\n\r[url]"+u+"[/url]\n\r"
$("textarea[name=\"content\"]").val(newVal);
}

http://jsfiddle.net/infernalbadger/FpSsc/1/

或者像 Felix 推荐的那样:

function addUrl(e)
{
patt="http[s]*:\/\/";
if(e.match(patt))
u=e;
else
u="http://"+e;

$("textarea[name=\"content\"]").val(function(i, v) { return v + "\n\r[url]"+u+"[/url]\n\r"; });
}

关于javascript - 删除先前 append 的内容后,append() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com