2016-07-02 70 views
0

我希望能够在input元素中设置value属性的内容,但尚未成功完成此操作。使用.html()不工作的jQuery设置输入值属性

HTML:

<div class='photo-info'> 
    Photo Name : <span class='photo-name'><?php echo $title; ?></span> 
    <span class='title-edit'><a href='#'>Edit</a></span> 
</div> 

的jQuery:

// show editable area for title 
    $('.title-edit').on('click', function() { 
     var $titleElm = $(this).prev(); 
     var text = $titleElm.text(); 
     $titleElm.html("<input type='text'>").val('tom'); 
    }) 

结果:

https://jsfiddle.net/fh7t9qwd/1/

+0

我建议只是做以下$ titleElm.html( “”); – cmw2379

回答

2

添加find('input')您更新HTML后:

$titleElm.html("<input type='text'>").find('input').val('tom'); 

jsFiddle Demo

+0

谢谢!我想的方式是:'.html()'返回一个jquery对象,为什么不在'.val()'后面链接。你知道为什么它不起作用吗? –

+1

因为这里的'html()'返回'$ titleElm'这个不是'input'的jQuery对象。 'html()'不返回指定HTML *的jQuery对象,而是返回外部容器本身的jQuery对象。 – BenM