2016-07-02 106 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