附加额外文本以选择选项

时间:2014-04-05 13:30:59

标签: jquery

在调查了几种操作选择菜单选项的方法之后,无法正确地理解我的想法,我在这里试试。

我有以下小提琴代表部分工作代码:

jsFiddle

目前,如果重新选择一个选项,它会复制文本,但除了那些不需要的效果之外,我实际上希望直接替换所有选项。

我使用的默认代码:

//START Get the stockdata

$stock_array = array();
$products_stock_query=tep_db_query("SELECT *
                                  FROM " . TABLE_PRODUCTS_STOCK . " 
                                  WHERE products_id=" . (int)$HTTP_GET_VARS['products_id'] ." 
                                  ORDER BY products_stock_attributes");

while($products_stock_values=tep_db_fetch_array($products_stock_query)) {
$str = $products_stock_values['products_stock_attributes'];
$str = substr( $str, ( $pos = strpos( $str, '-' ) ) === false ? 0 : $pos + 1 );
echo '<div class="stockdata" valuestock="'.$products_stock_values['products_stock_quantity'].'" valueid="'.$str.'"></div>';
}
?>

<script>

$('option').each(function () {
    $(this).data('txt', $(this).text());

});
$('select').change(function () {
var str = "";
$( "select option:selected" ).each(function() {
 str += this.text;
    $('option', this).each(function () {
        $(this).text($(this).data('txt'));
    });
    });
    var myCheck = $("body").find("div[valueid=" + $(this).find('option:selected').attr('value') + "]").attr("valuestock");
    if (myCheck === '0'){
    //do nothing
    }else{
   // $(this).find('option:selected').text($(this).find('option:selected').attr('value'));
    $(this).find('option:selected').text(str + ' (' +  $("body").find("div[valueid=" + $(this).find('option:selected').attr('value') + "]").attr("valuestock")+') <?php echo IN_STOCK_ATT; ?>');
}
}).trigger( "change" );

</script>

1 个答案:

答案 0 :(得分:1)

可能是您正在寻找的:

DEMO

$('select').find('option').each(function () {
    var numInStock = $("body").find("div[valueid=" + this.value + "]").attr("valuestock");
    if (numInStock) {
        $(this).text($(this).text() + '(' + numInStock + ') In Stock');
    } else {
        $(this).text($(this).text() + ' - Out of Stock');
    }
});