Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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.not()是否不删除元素?_Javascript_Jquery_Object - Fatal编程技术网

Javascript jQuery.not()是否不删除元素?

Javascript jQuery.not()是否不删除元素?,javascript,jquery,object,Javascript,Jquery,Object,我正在从页面中获取一些信息的副本,但我不想包含页面上元素中出现的某些元素 因此,当我获取所有我想要的元素并将它们存储在变量字段中时,我检查每个元素是否都是一个,以及它们是否具有我不想要的特定元素 var field = allFields[i].innerHTML; //allFields is the raw HTML I'm iterating through if ($(field).find("select").length

我正在从页面中获取一些信息的副本,但我不想包含页面上元素中出现的某些元素

因此,当我获取所有我想要的元素并将它们存储在变量字段中时,我检查每个元素是否都是一个,以及它们是否具有我不想要的特定元素

var field = allFields[i].innerHTML;                      //allFields is the raw HTML I'm iterating through
if ($(field).find("select").length > 0) {                //If the element we're looking at contains a select
  console.log("Found a select. It is in " + field);
  console.log($(field).find(".bad-option");
  field = $(field).not(".bad-option").prop("outerHTML"); //Use .not() to remove the elements which have the .bad-option class
                                                         // (and .prop("outerHTML") is just there to convert it back to a String instead of a jQuery object)
}
console.log("Adding " + field);
fields[i] = field;                                      //Add the HTML, free of any unwanted options, to the `fields` variable
基于,我希望.not函数从字段中删除任何包含坏选项类的元素。但事实并非如此。当我在使用.not前后记录字段时,它会打印出相同的内容。请参见上面代码中的控制台输出:

Found a select. It is in <label>Description:&nbsp;<select><option>thing1</option><option class="bad-option">thing2</option></select></label>
-----------------
[jQuery list object size 1, containing an object called option.bad-option]
-----------------
Adding <label>Description:&nbsp;<select><option>thing1</option><option class="bad-option">thing2</option></select></label>
发生了什么事?如何从jQuery对象中删除具有特定类的选项?为什么不工作,不工作


如果我需要澄清什么,请告诉我。我试图使这个问题尽可能具体,并很乐意进一步阐述细节。

文档可能有点混乱:not从选择中删除元素,而不是DOM。如果要删除元素,只需过滤并删除:

const processed=$field; 已处理.filter.bad-option.remove; 字段=processed.propouterHTML;
嗯,我准确地复制了你的代码,但奇怪的是,它似乎没有改变什么。事实上,console.logging processed提供了字段的jQuery对象表示形式。但是在.filter和.prop行之后,再次记录只会给出与以前完全相同的HTML,仍然包含元素。