我正在运行一个小的javascript替换来替换按钮单击时的文本,但我看不到为什么它不起作用。有人可以告诉我我在做什么错吗?

http://jsfiddle.net/zg4VB/2/

$("#button").click(function() {
    $("#editme").value = replaceLinks($("#editme").val());
})

function replaceLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp,"[url=$1]$1[/url]");
}

最佳答案

.value通常是DOM Input元素的直接属性。用于访问或更改元素值的jQuery函数为.val()

有用的是,.val()允许您传递一个函数来改变当前值。该函数将传递元素的索引和当前值,并且该函数的返回值将替换原始值。您需要做的就是更改replaceLinks函数的签名,以允许使用index参数(然后您可以放心地忽略它)。

$("#button").click(function() {
    $('#editme').val(replaceLinks);  // calls `replaceLinks` to mutate its value
});

function replaceLinks(index, text) {
    ...
}


http://jsfiddle.net/alnitak/XzrHP/

关于javascript - 单击按钮时替换Javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15390936/

10-11 11:20