1

私は2つのdivを持ってい<div class="number"></div>ます<div class="label"></div>.

if/else 文を工夫して、「number」の値が 1 の場合は「User」などのラベルを返し、number が 2 以上の場合は「Users」に変更するようにしたいと考えています。 "。

.nu​​mber の値を確認し、それに基づいてラベルを返す方法はありますか?

また、同じページに「number」と「label」の 5 つのインスタンスがあります。各数値は、データベース (Wordpress カスタム フィールド メタ) からその値を照会することによって返されます。

また、ラベルはインスタンスごとに異なります。最初のラベルは「ユーザー」、2 番目のラベルは「製品」などです。

必要なことはどうすればいいですか?

これが私のコードの例です:

<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>
4

3 に答える 3

1

試す:

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

これにより、クラス番号のすべての要素が実行され、要素ラベルの次のインスタンスが変更されます。div の配置方法によっては、.next() を別の関数に変更する必要がある場合があります。

jsFiddle の例

更新: リビジョンに基づいて、これを試してください:

$('.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 の例

于 2012-05-03T14:02:56.203 に答える
1

これを試して:

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

ユーザー数が のように整数にならない場合は、12.3456代わりparseFloat()parseInt()

于 2012-05-03T13:56:42.447 に答える
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;
于 2012-05-03T14:03:01.023 に答える