I have about 100 pages all with an <ul>
- the problem is, I need to wrap each list item in a <span>
. I've added the code below
<ul style="list-style-type: disc; margin-left: 40px; line-height: 140%;" _mce_style="list-style-type: disc; margin-left: 40px; line-height: 140%;">
<li> ICD-10 transition </li>
<li> Pricing transparency </li>
<li>Patient and payor mix fluctuation<br> </li>
</ul>
$(document).ready(function () {
$("li").each(function (index) {
$("li:nth-last-child(" + index + ")").append(" <span>" + $("li:nth-last-child(" + index + ")").text() + "</span>");
});
});
This is the result I get:
ICD-10 transition ICD-10 transition ICD-10 transition
Pricing transparency Pricing transparency Pricing transparency
Patient and payor mix fluctuation
Patient and payor mix fluctuation Patient and payor mix fluctuation
The code is being replaced twice when I only want the code to run once and replace the code one time - not twice. I'd like to know how to fix this but more so why this is even happening in the first place. The method isn't being called twice - so why is it happening.
Thank you guys so much for helping me figure out!!! I got it working with this...
$(document).ready(function () {
$("li").each(function (index) {
$(this).html("<span>" + $(this).html() + "</span>");
});
});
Thank you so very much!!!!!!!!
You can do it like following.
$("li").each(function () {
$(this).html('<span>'+$(this).html()+'</span>');
});
This is happening because when you append the span
you keep the text in the li
, so it is showed twice. You can change the append()
to html()
in order to clear the content in the li
and replace with the new span
:
$("li:nth-last-child(" + index + ")").html(" <span>" + $("li:nth-last-child(" + index + ")").text() + "</span>");
Working demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With