2013-03-27 3 views
-1

Я пытаюсь вычесть два символа из строки, которая динамически генерируется из базы данных, которая помещается в корзину table td. Поэтому вместо того, чтобы показать товар как 28,00 $, я хочу, чтобы продукт показывался как 28 долларов США. Поскольку эти значения поступают из базы данных, я не могу просто определить строку в переменной, как я видел во многих учебниках.jQuery Как направить строку в классе TD

Вот мой JS Fiddle http://jsfiddle.net/EbckS/6/

Вот мой eronous код

$(document).ready(function(){ 

     $("table td.SCNProductPrice").text(function(i, text) { 
     return text.slice(0, -2); 
     }); 

    }); 

Это является продолжением на другой вопрос, который я разместил здесь: jQuery Removing last two characters in a class

Я положил это в другой вопрос, потому что я не понимал, что таргетинг на класс внутри таблицы td потребует другого синтаксиса. Спасибо за вашу помощь!

+0

«динамически сгенерированный» <- это элемент, присутствующий в pageload или вставленный позже? В вашей скрипке отсутствует стол! – adeneo

+0

Если значения поступают из базы данных, не можете ли вы обработать их на стороне сервера? –

+1

Ваша разметка недействительна. http://jsfiddle.net/EbckS/10/ – undefined

ответ

0

Вы должны добавить td внутри tr, который находится внутри table.

<table> 
    <tr> 
     <td class="SCNProductPrice" valign="top">$28.00</td> 
    </tr> 
</table> 

Demo

2

Предположим, что ваш HTML действительна т.е. он имеет таблицу и т.д слайс имеет неправильный индекс. Сначала мы позаботимся о любом количестве десятичных точек, если это вообще произойдет.

попробовать

$("table td.SCNProductPrice").text(function(i, text) { 
    return '$' + parseInt(text.replace('$','')); 
}); 

или

$("table td.SCNProductPrice").text(function(i, text) { 
     return text.slice(0, -3); 
     }); 
0

наценки:

<table> 
    <tr> 
     <td class="SCNProductPrice" valign="top">$28.00</td> 
    </tr> 
</table> 

JS:

$(document).ready(function(){ 
    $("td.SCNProductPrice").text(function(i,text) { 
     return text.split('.')[0]; 
    }); 
}); 

дон Не забудьте, вам нужна правильная разметка во время вашей скрипки. наконец, я не уверен, почему вы хотите «28 долларов». разве это не должно быть «28 долларов»? JS выше делает последнее.

+0

eeek. Я извиняюсь за плохую скрипку. Это была плохая форма с моей стороны. Я не понимал, что мой sloppy html сломается. Оба этих ответа работают. благодаря – JaggsWaggert

Смежные вопросы