7

私は次のhtmlを持っています:

<div>
    <input type="text" style="xxxx" size="40"/>
    <input type="text" style="xxxx" size="100"/>
    <input type="text" style="xxxx" size="100"/>
    <input type="text" style="xxxx" size="40"/>
</div>

ここで、サイズが「100」の各入力を、入力と同じスタイルのテキストエリアに変更したいと考えています。

私はこれを試しました:

$("input[size=100]").each(function(){
  //how to replace it?
});

何か案は?


ここの回答にあるこのソリューションを使用しました:

$("input[size=100]").each(function() {
    var style = $(this).attr('style'), textbox = $(document.createElement('textarea')).attr({
        id : $(this).id,
        name : $(this).name,
        value : $(this).val(),
        style : $(this).attr("style"),
        "class" : $(this).attr("class"),
        rows : 6
    }).width($(this).width());
    $(this).replaceWith(textbox);
});
4

4 に答える 4

11

jQuery には、.replaceWith()ある要素を別の要素に置き換えるために使用できるメソッドがあります。したがって、入力からスタイルをコピーし、次のようにこのメソッドを使用します。

$('input[size="100"]').each(function () {
    var style = $(this).attr('style'),
        textbox = $(document.createElement('textarea')).attr('style', style);
    $(this).replaceWith(textbox);
});

デモ

于 2013-06-13T09:14:36.183 に答える
3

の線に沿って何かを試してください

$('input[size="100"]').each(function()
{
    var textarea = $(document.createElement('textarea'));
    textarea.text($(this).val());

    $(this).after(textarea).remove();
});

例を次に示します: http://jsfiddle.net/SSwhK/

于 2013-06-13T09:18:48.247 に答える
1

このようにしてみてください

$("input").each(function(){
      if($(this).attr('size') == "100") {
             my_style = $(this).attr('style');
             $(this).replaceWith("<textarea style='"+my_style+"'></textarea>");
      }
});
于 2013-06-13T09:10:20.913 に答える
0
$(document).ready(function(){
    $("input[size=100]").each(function(){
      //how to replace it?
        $(this).after('<textarea style="xxxx"></textarea>').remove();
    });
});

http://jsfiddle.net/6JH6B/を確認してください

于 2013-06-13T09:14:11.230 に答える