我有一个div,它将在页面的另一点显示。它并不总是出现在页面上,并且可以根据需要通过CMS添加。正文中会出现一行文字。如果用户决定添加此div,则需要通过jquery将其移到位置。所以,我有这段文字:
<p><strong>Key Facts:</strong></p>
我想使用jquery找到它,然后将另一个div移到它前面。我尝试了几种不同的方法来选择此文本,然后将div移到它前面,但没有任何运气。我发现找到文本的最好方法是执行以下操作:
var foundin = $('*:contains("<p><strong>Key Facts:</strong></p>")');
从那时起,为了将div移到位置,我想我可以像这样:
$('#DivIWantToMove').insertBefore($foundin);
但是,那没有用。我也看了一下:
$( $foundin ).before( $('#DivIWantToMove') );
就像您想象的那样,由于您正在阅读本文,因此也不起作用。所以,我问你,有可能做我想做的吗?我受到我们正在使用的CMS的束缚。我需要移动的DIV将始终在页面上的某个位置,并且我必须移动它。客户端不想添加一个类,<p><strong>Key Facts:</strong></p>
所以我对此感到满意。如果我可以上课,<p>
那将是非常容易的。我已经做过了 客户不喜欢额外的步骤。有任何想法吗?
我认为contains
选择器仅查找文本,而不是html标签。因此您必须修改您的包含选择器。如果您的html是这样的-
<div>
<p><strong>Key Facts:</strong>
</p>
</div>
<div id="move">something something</div>
并且您想将自己移到的<div id='move'>
前面p
,然后尝试以下操作-
var foundin = $('p:contains("Key Facts")');
var divtomove = $('div#move');
foundin.before(divtomove);
更新还查看此质量检查:jQuery:包含html。除了使用之外,contains
您还可以使用其中一种方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句