javascript - 如何根据一个值过滤值并替换为相应的名称

标签 javascript php jquery yii

我是 Jquery 新手。
我有两个由 Yii Widget 创建的下拉列表。下面是两个下拉列表的代码:

<select id="SearchForm_min_cost_select" style="display: none;">
<option value="0"></option>
<option value="10 lakhs">10 lakhs</option>
<option value="20 lakhs">20 lakhs</option>
<option value="30 lakhs">30 lakhs</option>
<option value="40 lakhs">40 lakhs</option>
<option value="50 lakhs">50 lakhs</option>
<option value="60 lakhs">60 lakhs</option>
<option value="70 lakhs">70 lakhs</option>
<option value="80 lakhs">80 lakhs</option>
<option value="90 lakhs">90 lakhs</option>
<option value="1 crores">1 crores</option>
<option value="2 crores">2 crores</option>
<option value="3 crores">3 crores</option>
<option value="4 crores">4 crores</option>
<option value="5 crores">5 crores</option>
</select>

<select id="SearchForm_max_cost_select" style="display: none;">
<option value="0"></option>
<option value="10 lakhs">10 lakhs</option>
<option value="20 lakhs">20 lakhs</option>
<option value="30 lakhs">30 lakhs</option>
<option value="40 lakhs">40 lakhs</option>
<option value="50 lakhs">50 lakhs</option>
<option value="60 lakhs">60 lakhs</option>
<option value="70 lakhs">70 lakhs</option>
<option value="80 lakhs">80 lakhs</option>
<option value="90 lakhs">90 lakhs</option>
<option value="1 crores">1 crores</option>
<option value="2 crores">2 crores</option>
<option value="3 crores">3 crores</option>
<option value="4 crores">4 crores</option>
<option value="5 crores">5 crores</option>
</select>  

OnSelect,我调用下面的函数cost_change(item.value)

function cost_change(price) {


    var match =  <?php echo json_encode(Yii::app()->params['match_resales']);?>;
    console.log("match",match);    
    var value=match[price];
    console.log("value",value);

      jQuery('#SearchForm_max_cost_select').html(jQuery('#SearchForm_min_cost_select').html())     
    var toKeep = jQuery('#SearchForm_max_cost_select option').filter( function( ) {
        return parseInt(this.value) > parseInt( value);       
 } );        
   console.log("to keep",toKeep);

   jQuery('#SearchForm_max_cost_select').html(toKeep);

} 

'match_resales' => array('10 lakhs'=>'1000000.0','20 lakhs'=>'2000000.0','30 lakhs'=>'3000000.0','40 lakhs'=>'4000000.0','50 lakhs'=>'5000000.0','60 lakhs'=>'6000000.0','70 lakhs'=>'7000000.0','80 lakhs'=>'8000000.0','90 lakhs'=>'9000000.0','1 crores'=>'10000000.0','2 crores'=>'20000000.0','3 crores'=>'30000000.0','4 crores'=>'40000000.0','5 crores'=>'50000000.0'),     

现在,在上面的代码中,基于选择的值,我将键值对数组编码为键值对的 JSON 数组,找到与变量价格对应的值,然后将其存储在变量 value 中。
在上面的代码中,我需要操纵该函数,使其找到所有大于值的选项并将其显示在第二个下拉列表中。

编辑 在从 JSON 数组中检索到 value 之前,我一直在纠正它。之后我想找到所有大于 value 的值并在第二个下拉列表中显示它们的对应值

最佳答案

假设两个列表相同:

// Keep a copy of the default options
var $options = $('#SearchForm_min_cost_select').children().clone();

// Within your change handler:

var index = $('#SearchForm_min_cost_select').find(':selected').index() + 1;
$('#SearchForm_max_cost_select').html($options).children(':lt('+index+')').remove();

免责声明:这很可能针对性能进行了优化,但它相当容易理解。

关于javascript - 如何根据一个值过滤值并替换为相应的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20047966/

相关文章:

javascript - 每个选择器的 jQuery onclick

jquery - 选择下拉菜单时显示图像

jquery - JSSOR宽屏幻灯片

javascript - 如何在ajax url中传递下拉列表的值

javascript - Bootstrap 固定顶部 header 的 anchor 问题

javascript - 未捕获的类型错误 : undefined is not a function javascript function

javascript - 监听来自动态创建的组件的事件

php - Magento 批量价格变动

php - 为什么在使用 PHP cURL 时不需要避免 SSL 检查但可以请求 HTTPS 资源

php - Laravel 集合在 map 内部递增无法使用箭头功能