在调查了几种操作选择菜单选项的方法之后,无法正确地理解我的想法,我在这里试试。
我有以下小提琴代表部分工作代码:
目前,如果重新选择一个选项,它会复制文本,但除了那些不需要的效果之外,我实际上希望直接替换所有选项。
我使用的默认代码:
//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>
答案 0 :(得分:1)
可能是您正在寻找的:
$('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');
}
});