jQuery不是运行内部函数,而是用整个函数替换文本

时间:2010-11-09 14:45:04

标签: jquery

如何使jQuery实际运行内部函数而不是仅仅更改val()以显示函数?

$(".me_signup .name").bind("mouseup keyup", function(){
    $(this).siblings('.message').val(function(index,value) {
      var name = $(this).val().split(' ')[0];
      return value.replace('friend', name);
  });
});

我希望最终结果用name替换单词friend的内部文本。但它只是用我的HTML中的整个函数替换文本。关于为什么它没有运行内部函数的任何想法?

2 个答案:

答案 0 :(得分:2)

如果您在1.4之前使用的是jQuery版本,则不支持将function作为参数发送到.val()。你需要做很多事情。


编辑:漫长道路:

$(".me_signup .name").bind("mouseup keyup", function(){
    var name = $(this).val().split(' ')[0];
    var $message = $(this).siblings('.message');
    $message.val( $message.val().replace('friend', name) );
});

答案 1 :(得分:0)

如果没有看到html,很难想象,但看起来你想要使用.each();

的内容
$(".me_signup .name").bind("mouseup keyup", function(){
    $(this).siblings('.message').each(function(index,value) {
      var name = $(this).val().split(' ')[0];
      $(this).val(name); // I'm not sure what you were trying to do with replace
  });
});