Вот как выбрать текстовый узел.
Вот (скелет), что вы делаете, когда получите их:
$('li.det_price').contents().filter(function()
{
return this.nodeType == 3;
}).text(function (i, text)
{
return text.replace(/* your schtuff here */);
});
Так что, очевидно, jQuery не очень хорошо работает с текстовыми узлами
Пора (немного) взломать:
var rnotwhite = /\S/; // to omit text nodes that are solely white space
// tweak this as needed
$('li.det_price').contents().filter(function()
{
return this.nodeType === 3 && rnotwhite.test($(this).text());
}).text(function (i, text)
{
this.replaceWholeText(text + ' replaced');
// or, for more cross-browser-ness
// this.nodeValue = text + ' replaced';
});
-->
Посмотри это сладкое демо <--
-->
IE-совместимая демоверсия здесь <--
Теперь сделка: если у вас есть контроль над разметкой, лучшее решение для этого заключается в том, чтобы обернуть текстовые узлы, которые вам действительно интересны, в <span>
с, как это:
<li class="det_price">
<a href="/designer/customize/278258?dpid=1">Printing</a><span> from $10</span>
</li>
и тогда вы можете просто сделать это ( way less sketch, IMO):
$('li.det_price > a + span').text(function (i, text)
{
return text + ' replaced';
});
-->
Больше демо-совершенства <--