3

我该如何完成这项工作。我正在尝试将文本附加到文本区域。如果某个值已经存在,则追加。我让它工作,但似乎它不能在所有浏览器中工作。有一个更好的方法吗?

两种方法都试过了,它们在 Chrome、IE 和 FF 中都不起作用 -

if ($('#log').value == undefined) {
$('#log').val("First: " + result[0]);
} else {
$('#log').val($('#log').value += "Second: " + result[0]);
}

if ($('#log').value == undefined) {
$('#log').val("First: " + result[0]);
} else {
$('#log').val(log.value += "Second: " + result[0]);
}

没有If,这适用于 Chrome,但不适用于 IE 和 FF -

$('#log').val(log.value += "First: + result[0]);
4

1 回答 1

2

jQuery 对象没有.value属性,所以$('#log').value总是undefined. 这意味着您的语句将始终调用$('#log').val("First: " + result[0]);并且永远不会调用第二个语句。

你需要检查一下if($('#log').val() == '')

至于.val(),你可以传递一个函数。此函数将传递输入的当前值。

if ($('#log').val() == '') {
    $('#log').val("First: " + result[0]);
} else {
    $('#log').val(function(i, v){ // v is the current value
        return v + "Second: " + result[0];  // what's returned is what the value will be set to
    });
}
于 2012-05-12T05:49:50.250 回答