为什么使用createElement值不能正确显示我的输入元素?

时间:2013-08-07 16:53:49

标签: php dom

我有以下代码:

$newDOM = new DOMDocument('1.0', 'utf-8');
$foo = $newDOM->createElement('Input', 'THIS IS MY VALUE');
$newDOM->appendChild($foo);
echo $newDOM->saveHTML();

这是仅输出的内容:<Input>

但是当我将createElement更改为'div'时,它可以正常工作

这是'div'或任何其他输入输出的内容:

 <div>THIS IS MY VALUE</div>

这是我的var_dump($foo)

object(DOMElement)#5 (17) {
  ["tagName"]=>
  string(5) "Input"
  ["schemaTypeInfo"]=>
  NULL
  ["nodeName"]=>
  string(5) "Input"
  ["nodeValue"]=>
  string(16) "THIS IS MY VALUE"
  ["nodeType"]=>
  int(1)

  ["parentNode"]=>
  string(22) "(object value omitted)"
  ["childNodes"]=>
  string(22) "(object value omitted)"
  ["firstChild"]=>
  string(22) "(object value omitted)"
  ["lastChild"]=>
  string(22) "(object value omitted)"
  ["previousSibling"]=>
  NULL
  ["attributes"]=>
  string(22) "(object value omitted)"
  ["ownerDocument"]=>
  string(22) "(object value omitted)"
  ["namespaceURI"]=>
  NULL
  ["prefix"]=>
  string(0) ""
  ["localName"]=>
  string(5) "Input"
  ["baseURI"]=>
  NULL
  ["textContent"]=>
  string(16) "THIS IS MY VALUE"
}

1 个答案:

答案 0 :(得分:2)

createElement的第二个参数是您正在创建的标记的内容。 <input>标记不能包含文字。您需要设置其value属性。您正在尝试制作<input value="this is my value">,而不是<input>this is my value</input>

请参阅createAttribute