问题描述
|
<span id=\"subscription-toggle\" class=\"list:subscription\">
| <!-- I want to surround this with a div with a class -->
<span class=\"\" id=\"subscribe-77\" style=\"\">
<a class=\"dim:subscription-toggle:subscribe-77:is-subscribed\" href=\"http://localhost/taiwantalk2/topic/topic-with-two-tags-topic-with-two-tags-topic-with-two-tags/?action=bbp_subscribe&topic_id=77&_wpnonce=25988e5dac\">Subscribe</a>
</span>
</span>
因此,这应该是最终结果:
<span id=\"subscription-toggle\" class=\"list:subscription\">
<div class=\"hide-this\"> | </div>
<span class=\"\" id=\"subscribe-77\" style=\"\">
<a class=\"dim:subscription-toggle:subscribe-77:is-subscribed\" href=\"http://localhost/taiwantalk2/topic/topic-with-two-tags-topic-with-two-tags-topic-with-two-tags/?action=bbp_subscribe&topic_id=77&_wpnonce=25988e5dac\">Subscribe</a>
</span>
</span>
解决方法
如果您希望将
div
环绕的文本节点是唯一的文本节点(即它是inside3ѭ内唯一的文本,且不在另一个元素内),则可以执行以下操作:
$(\"#subscription-toggle\").contents().filter(function() {
return this.nodeType == 3;
}).wrap(\"<div class=\'hide-this\'></div>\");
您可以在此处查看示例。
或者,如果span
中有多个文本节点,而您只想换行|
个字符,请用以下行替换filter
函数的主体:
return $(this).text().indexOf(\"|\") != -1;
您可以在此处看到该示例的示例。
, 我尚未测试过,但应该可以:
var subsc = $(\'#subscription-toggle\');
subsc.html(subsc.html().replace(\'/( \\| )/g\',\'<div class=\"hide-this\">$1</div>\'));
, 您可以使用jquery的“ 10”功能实现此目标:http://api.jquery.com/wrap/
因此,您可以使用:contains
选择器搜索 |
,而不使用wrap
函数。
, 怎么样:
$(\“#subscription-toggle \”)。prepend(function(){
返回$(\“ \”)。append(this.childNodes [0]);
});