1

在我的页面上,我有几个如下所示的标签:

<parameter name="address" class="transform">@ViewBag.Address</parameter>

为此,我创建了这个函数:

 function transform(id) {
     $('#' + id + ' .transform').each(function (index) {
         var tag = $(this).parent().html();
         $(this).parent().html() = tag.replace('parameter','input type="text"');
     });
 }

现在,如果我提醒 $(this).parent().html() 我得到原始标签,但该功能不起作用。我究竟做错了什么?

4

2 回答 2

2

试试这个(给html函数一个参数,可能是问题的原因

function transform(id) {
 $('#' + id + ' .transform').each(function (index) {
     var tag = $(this).parent().html();
     $(this).parent().html( tag.replace('parameter','input type="text"') );
 });
 }
于 2012-04-21T19:57:56.577 回答
1

您接受的答案对我不起作用,所以我创建了这个jsFiddle 示例

jQuery:

function transform(id) {
    $('#' + id + ' .transform').each(function(index) {
        $(this).replaceWith($('<input value="' + $(this).html() + '" type="text" name="address" class="transform" />'));
    });
}

这会将参数标签转换为输入元素,并将 @ViewBag.Address 文本作为每个输入的默认值。

于 2012-04-21T20:22:30.840 回答