需要帮助来弄清楚为什么当前代码不适用于当前最新的(1.6.4)版本的JQuery

时间:2011-09-28 03:57:21

标签: javascript jquery jquery-selectors javascript-framework

下面是代码,该程序分为两个主要部分。 一个对每个Select元素和另一个元素执行操作 在这个\每个选择和这一个中的所有选项元素 不起作用,因为它应该为每个选择选项文本值附加价格“[+ $ 00]”, 禁止当前选择的一个。标记的代码段不起作用。 使用1.5.1,1.5.2工作正常,并且从1.6

开始不起作用
        // ===== CODE DOES NOT WORK FROM HERE WITH 1.6.4============
        $(this).find('option').each(function () {

            //$(this).append('<span></span>');

            var uov = parseInt($(this).attr('value')) || 0; //Unselected option value

            var uop; //Unselected Option Price


            for (d = 0; d <= data.length; d++) {


                if (data[d].partid == uov) {

                    uop = data[d].price;
                    break;
                }

            }

            //debugger;
            var pricediff = Math.abs(uop - sop);

            var xtext = $(this).text();





            if (xtext.match(/\✔/) != null) {

                var temp = xtext.replace(/✔/g, '');


                xtext = temp;
            }


            if (xtext.match(/\[.*\]/) != null) {
                var temp = xtext.split('[')[0];
                var temp2 = xtext.split(']')[1];

                xtext = temp2;
            }

            if (uov != 0) {

                if (pricediff != 0) {


                    var diff = '[' + (sop > uop ? '-' : '+') + '$' + pricediff + ']';


                    $(this).attr("text", diff + " " + xtext);
                }

                else {

                    $(this).attr("text", "  ✔  " + " " + xtext);


                }

            }

                  //=============== TO HERE ========================

1 个答案:

答案 0 :(得分:0)

不要使用:

$(this).attr('value')

获取表单字段的值。使用:

$(this).val()

当我们更改框架的jQuery版本时,这给我们的客户端开发人员带来了许多麻烦。

---编辑---

你当然不应该尝试使用attr()函数编辑元素的文本,如下所示:

 $(this).attr("text", diff + " " + xtext);

您应该使用:

 $(this).text(diff + " " + xtext);
相关问题