在每个字段上运行Jquery函数

时间:2016-09-13 14:47:28

标签: javascript jquery

我想要大写每个来自Sql的选项值。 现在,以下代码工作正常 - 但只在第一个字段...

function capitalize(str){
var text = str.text().replace(/^(.)|\s(.)/g, function($1){ return $1.toUpperCase( ); });
return str.text(text);
}capitalize($('#op'));

我的Html字段看起来像这样(我正在使用PUG / JADE,这是我最好尝试转换为演示目的):

<select class="select_input">
<option value=$emp['id'] id="op" selected="selected">$emp['value']</option>*
<?php foreach ($type as $type_val) ?>
<option value=$type_val['id']>$type_val['val']</option>
<?php endforeach?>

<select class="select_input">
<option value=$emp['id'] id="op" selected="selected">$emp['value']</option>*
<?php foreach ($type as $type_val) ?>
<option value=$type_val['id']>$type_val['val']</option>
<?php endforeach?>
  • 来自DB的第一个值。

正如我之前提到的,脚本只在第一个字段上运行...

3 个答案:

答案 0 :(得分:1)

您以错误的方式使用id。每个id对于html页面必须是唯一的。

// will work only for first object
capitalize($('#op'))

尝试使用类

<select class="select_input">
<option value=$emp['id'] id="op" class="option" selected="selected">$emp['value'] </option>*
<?php foreach ($type as $type_val) ?>
<option value=$type_val['id'] class="option">$type_val['val']</option>
<?php endforeach?>


capitalize($(".option"))

答案 1 :(得分:0)

可以只使用CSS来大写每个下拉项:

#op > option {
    text-transform: capitalize;
}

答案 2 :(得分:0)

得到它......不幸的是服务器端没有其他方式

public function capitalize($arr)
  {
    foreach ($arr as $key => $val) {
        $data[$key] = ucfirst($val);
    }

        return $data;
    }//end capitalize()