Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这个Jquery表达式有什么问题_Javascript_Jquery - Fatal编程技术网

Javascript 这个Jquery表达式有什么问题

Javascript 这个Jquery表达式有什么问题,javascript,jquery,Javascript,Jquery,自从我将我的项目从jQuery1.7.1升级到1.11.0后,我的一个js中出现了这个错误,以前它工作得很好 我得到的错误是 未捕获错误:语法错误,无法识别的表达式:.formsetFormField:not(.treeLevel):not([name$=-TOTAL_FORMS]):not([name$=-INITIAL_FORMS]):not([name$=-MAX_NUM_FORMS]),input[type=checkbox][name$=-DELETE],input[type=hidd

自从我将我的项目从jQuery1.7.1升级到1.11.0后,我的一个js中出现了这个错误,以前它工作得很好

我得到的错误是

未捕获错误:语法错误,无法识别的表达式:.formsetFormField:not(.treeLevel):not([name$=-TOTAL_FORMS]):not([name$=-INITIAL_FORMS]):not([name$=-MAX_NUM_FORMS]),input[type=checkbox][name$=-DELETE],input[type=hidden][name$=-slide,input[type=file]

我的代码是这样的

if (typeof opts.getAllInputs === "undefined") {
                node._getAllInputs = function(withManagementForm) {
                    withManagementForm = (typeof withManagementForm === "undefined") ? withManagementForm : false;
                    if (withManagementForm) {
                        return $(this).find("> .nestedFormsetsFieldsSection > li > input:not(.treeLevel), > .nestedFormsetsFieldsSection > li > textarea");
                    } else {
                        return $(this).find("> .nestedFormsetsFieldsSection > li > input:not(.treeLevel):not([name$=-TOTAL_FORMS]):not([name$=-INITIAL_FORMS]):not([name$=-MAX_NUM_FORMS]), > .nestedFormsetsFieldsSection > li > textarea");
                    }
                };
            } else {
                node._getAllInputs = opts.getAllInputs;
}
我尝试了很多方法,比如 1.修正这个表达式 2.尝试使用多个版本的Jquery。我制作了一个1.7.1的对象,并使用了以下方法

<script type="text/javascript">
var jQuery_1_7_1 = $.noConflict(true);
</script>

var jQuery_1_7_1=$.noConflict(true);
但我最终会犯更多的错误


我看到的唯一解决方案是,如果有人能帮助我根据Jquery 1.11.0修复这个表达式,我在我的系统中测试了代码…似乎没有任何错误..试试代码

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
var opts="a";  //just delete that
var node="a";    //just delete that
if (typeof opts.getAllInputs === "undefined") {
                node._getAllInputs = function(withManagementForm) {
                    withManagementForm = (typeof withManagementForm === "undefined") ? withManagementForm : false;
                    if (withManagementForm) {
                        return $(this).find("> .nestedFormsetsFieldsSection > li > input:not(.treeLevel), > .nestedFormsetsFieldsSection > li > textarea");
                    } else {
                        return $(this).find("> .nestedFormsetsFieldsSection > li > input:not(.treeLevel):not([name$=-TOTAL_FORMS]):not([name$=-INITIAL_FORMS]):not([name$=-MAX_NUM_FORMS]), > .nestedFormsetsFieldsSection > li > textarea");
                    }
                };
            } else {
                node._getAllInputs = opts.getAllInputs;
}
</script>

var opts=“a”//把它删掉
var node=“a”//把它删掉
if(typeof opts.getAllInputs==“未定义”){
节点。\u getAllInputs=函数(带管理表单){
withManagementForm=(withManagementForm的类型==“未定义”)?withManagementForm:false;
if(带管理表格){
返回$(this).find(“>.nestedFormsetsFieldsSection>li>input:not(.treeLevel),>.nestedFormsetsFieldsSection>li>textarea”);
}否则{
返回$(this).find(“>.nestedFormsetsFieldsSection>li>输入:not(.treeLevel):not([name$=-TOTAL_表单]):not([name$=-INITIAL_表单]):not([name$=-MAX_NUM_表单]),>.nestedFormsetsFieldsSection>li>textarea”);
}
};
}否则{
节点。_getAllInputs=opts.getAllInputs;
}

他们请对新版本使用
noconflict
,而不是旧版本,因为您的代码与
Jquery 1.7.1
兼容,所以您需要为
noconflict
编写以下代码

<script type="text/javascript">
  var jQuery_1_11_1 = $.noConflict(true);
  </script>

var jQuery_1_11_1=$.noConflict(true);

希望对您有所帮助,因为此代码中似乎有错误:

未捕获错误:语法错误,无法识别的表达式:.formsetFormField:not(.treeLevel):not([name$=-TOTAL_FORMS]):not([name$=-INITIAL_FORMS]):not([name$=-MAX_NUM_FORMS]),input[type=checkbox][name$=-DELETE],input[type=hidden][name$=-slide,input[type=file]

所以你可以试试这个:

$(this).find('.formsetFormField:not(.treeLevel):not([name$="-TOTAL_FORMS"]):not([name$="-INITIAL_FORMS"]):not([name$="-MAX_NUM_FORMS"]), input[type="checkbox"][name$="-DELETE"], input[type="hidden"][name$="-slide"], input[type="file"]');
在我看来,当使用属性选择器时,应该使用
引号使其成为字符串表示形式,例如:
[name$=”-MAX\u NUM\u FORMS]


我注意到的另一件事是,这里有两个逗号

[name$=-slide], , input[type=file]

在选择器的末尾。

很抱歉浪费了你们的时间。我确实发现了问题。函数getAllInputs在其他一些js中被调用,我发现有两个逗号是没有原因的(在异常错误中被捕获)

我不知道为什么它没有在旧版本中被捕获。这就是原因,正因为如此,我从未想到问题可能出现在其他一些js中,而不是版本升级

不管怎样,我用一个逗号代替了它,它就像一个符咒:)


感谢大家的努力和帮助。

这个表达式在成功找到dom元素时是否会出错?也许如果你看到错误你能给我一个想法?不!没用。我最终得到了更多的错误:(如果您删除了新库,您的代码是否在使用1.7.1?我也尝试了引用方法,但错误仍然存在:(.我不明白这是从哪里来的。@kunalManwar这是答案中提到的,但很高兴您解决了它。