【问题标题】:create new element on xajax在 xajax 上创建新元素
【发布时间】:2023-11-15 10:51:01
【问题描述】:

大家好,又是我的。也许这是一个愚蠢的问题,但我可以做到:>

我需要在我的 xajax 函数中创建一个 div 对象。我这样做了

$response->create("parent id","The name of the new element","new id");

到目前为止一切都很好。接下来,我像这样为我的新对象分配一个属性

$response->assign("new id","style.display","block")

到目前为止还不错。我的问题是想要创建一个属性。这是我的代码

$response->assign("new id","class","name of my class");

在 html 中类似于 <div id="p-new id" class="name of my class">

但我不能这样做。任何建议都很好

谢谢。

【问题讨论】:

  • 上面的例子是PHP代码还是JS代码?可能两者兼而有之……
  • 这个指令是在我的 xajax 函数中用 php 编写的

标签: php javascript xajax


【解决方案1】:

请记住 ->assign(*id*, *prop*, *value*) 被翻译成 document.getElementById(*id*).*prop* = *value*;

因为class是Javascript中的保留字,所以class属性由属性className处理。

所以$response->assign("new id","className","name of my class"); 会工作的。

【讨论】:

    【解决方案2】:

    你为什么不在一行中创建整个对象:

    $response->assign("parent-id","innerHTML","<div id='p-new id' class='name of my class'>");
    

    或者如果你不能改变 parent-id innerHTML 创建: 首先是new-id div:

    $response->create("parent-id","The name of the new element","new-id");
    

    然后分配它的innerHTML新div:

    $response->assign("parent-id","innerHTML","<div class='name of my class'></div>");
    

    不幸的是你会得到结构

    <div id="p-new id"> <class="name of my class"></div> </div>
    

    不是你想要的

    <div id="p-new id" class="name of my class"></div>
    

    但是你可以根据自己的需要调整这个想法并创造类似的东西

    <div id="outer-sth"><div id="p-new id" class="name of my class"></div></div>
    

    我相信这与您的要求非常接近。

    【讨论】: