jQuery / PHP - 不同的标签取决于DIV的价值

时间:2012-05-03 13:53:56

标签: php jquery wordpress

我有两个div,<div class="number"></div><div class="label"></div>

我想设计一个if / else语句,这样如果“number”中的值为1,它将返回一个标签,例如“User”,而如果该数字为2或更高,则会更改“用户”。

有没有办法检查.number的值,然后根据它返回标签?

此外,同一页面上将有5个“数字”和“标签”实例。通过从数据库(Wordpress Custom Field Meta)查询其值来返回每个数字。

此外,每个实例的标签都不同,第一个可能是“用户”,而第二个可能是“产品”等。

我如何做我需要的?

以下是我的代码示例:

<div class="data-item employees">
     <div class="number"><?php echo $sc_data_employees; ?></div>
     <div class="label"></div>
</div>
<div class="data-item products">
     <div class="number"><?php echo $sc_data_products; ?></div>
     <div class="label"></div>
</div>

3 个答案:

答案 0 :(得分:1)

试试这个:

var users = parseInt($(".number").text(),10);
var label = (users == 1) ? "user" : "users";
$(".label").text(label);

如果用户数不是整数,例如12.3456,请使用parseFloat()代替parseInt()

答案 1 :(得分:1)

尝试:

$('.number').each(function(){
    $(this).next('.label').html( ($(this).text()==1)?'user':'users');
});​​​​​​​​

这将遍历类号的所有元素并更改元素标签的下一个实例。根据div的排列方式,您可能需要将.next()更改为另一个函数。

<强> jsFiddle example

更新:根据您的修订版,试试这个:

$('.number').each(function(){
    var plural = $(this).parent().attr('class').split(' ')[1];
    var singular = plural.substring(0, plural.length - 1);
    $(this).next('.label').html( ($(this).text()==1)?singular:plural);
});​

<强> jsFiddle example

答案 2 :(得分:0)

或者,您可以在使用PHP输出到浏览器之前执行此操作。

$number = 1; // The number from your database

$text = ($number == 1) ? "User" : "Users"; //

$output = '<div class="number">{$number}</div>
           <div class="label">{$text}</div>';

echo $output;