php tag属性,有没有更好的方法可以在PHP中更改domElement->tagname属性?

我刚刚为我的MVC框架构建了一个文本框控件,在完成整个文档之前,我对从servertag继承的所有内容调用prerender(而servertag又从domelement继承)。

我发现更改domElement派生对象的标记名的唯一方法是用一个新的标记名替换它,所有属性都与旧的标记名同步。

这就是代码中的情况:

protected function PreRenderTextarea( WebPage $sender )

{

$textarea = $sender->createElement( 'textarea' );

foreach( $this->attributes as $attribute )

{

if ( $attribute->name == 'value' )

{

$textarea->nodeValue = $attribute->value;

}

else

{

$textarea->setAttribute( $attribute->name, $attribute->value );

}

}

$this->parentNode->replaceChild( $textarea, $this );

}

public function OnPreRender( WebPage $sender )

{

parent::OnPreRender();

$this->setAttribute( 'value', $this->Value );

switch( $this->Mode )

{

case 'normal' :

$this->setAttribute( 'type', 'text' );

break;

case 'password' :

$this->setAttribute( 'type', 'password' );

break;

case 'multiline' :

$this->PreRenderTextarea( $sender );

return;

break;

}

}

这真的是唯一的方法吗?这种方式有一个相当不必要的副作用,那就是取消控制背后的所有逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值