【问题标题】:jquery html new element after <span><span> 之后的 jquery html 新元素
【发布时间】:2021-02-14 16:48:59
【问题描述】:

我有这个 HTML:

<div data-value="1606132800">
   <span>23</span>
</div>

而且,我想使用 jQuery 在我的 span 之后添加一个 p 标签,如下所示:

<div data-value="1606132800">
   <span>23</span>
   <p>1$</p>
</div>

我试过了:

$("div[data-value='"+key+"'] > span").html('<p>'+value.price+' '+currency+'</p>');
$("div[data-value='"+key+"']").children('span').html('<p>'+value.price+' '+currency+'</p>');

我不想使用 append 因为会附加我的 p 标签的 altot 并且每次在附加一个新元素之前我必须删除 p 标签以仅添加 1 个标签 我现在正在使用它。

 $("div[data-value='"+key+"']").children('p').remove();
 $("div[data-value='"+key+"']").append('<p>'+value.price+' '+currency+'</p>');

我试图获得更好的解决方案的原因是它有点慢而且不是很好的解决方案。

感谢您的帮助!

【问题讨论】:

  • 您的两种html() 方法都试图将&lt;p&gt; inside &lt;span&gt;
  • 是什么让你说它是一个“有点慢”?有很多吗?
  • @charlietfl 每次我更改或点击任何元素时都有 84 个标签
  • 您是否只希望每次更改一个?如果是这样,我们需要更多详细信息

标签: javascript html jquery append


【解决方案1】:

你可以在当天克隆跨度,而不是在你可以使用 html() 再次放置跨度和 p 标记的时候。我会用你的代码举例:

  cloneDay[$(this).attr('data-value')] = $(this).children('span').text();

在您将值作为键并将您的一天作为值之后,您可以从数组中选择类似这样的信息

  cloneDay[key]

 $("div[data-value='"+key+"']").html('<span>'+cloneDay[key]+'</span><p>'+value.price+' '+currency+'</p>');

【讨论】:

  • 谢谢它是完美的
猜你喜欢
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
  • 2021-06-15
  • 2017-08-13
  • 1970-01-01
相关资源
最近更新 更多