精华内容
下载资源
问答
  • IE:document.selection FireFox:window.getSelection() document.selection只有IE支持,window.getSelection()也只有FireFox和 Safari支持,都不是标准语法。  selection 对象 代表了当前激活选中区,即...

    代码1:

    var selectionText = window.getSelection ? window.getSelection() : (document.getSelection ? document.getSelection() : (document.selection ? document.selection.createRange().text : ""))

    代码2:
    var selectionText;
    if(window.getSelection){//DOM,FF,Webkit,Chrome,IE10
    selectionText = window.getSelection();
    }else if(document.getSelection){//IE10
    selectionText = document.getSelection();
    }else if(document.selection){//IE6+10-
    selectionText = document.selection.createRange().text;
    }else{
    selectionText = "";
    }

    代码3:

    <script>
    function getSel()
    {
          var txt = '';
          var foundIn = '';
          if(window.getSelection)
          {
              txt = window.getSelection();
              foundIn = 'window.getSelection()';
          }else if(document.getSelection)
          {
              txt = document.getSelection();
              foundIn = 'document.getSelection()';
          }else if(document.selection)
          {
              txt = document.selection.createRange().text;
              foundIn = 'document.selection.createRange()';
          }else
              return;
          document.forms[0].selectedtext.value = 'Found in: ' + foundIn + '\n' + txt;
    }
    </script>
    <form>
    <textarea name="selectedtext" rows="5" cols="50">
    </textarea><br>
    <input type="button" value="Getselection" οnmοusedοwn="getSel()">
    </form>

    以上的代码可以捕获到选中的网页中的纯文本内容(不含HTML标签)
    如果想获得包含html的内容,将document.selection.createRange().text改成document.selection.createRange().htmlText  

    IE:document.selection   FireFox:window.getSelection()   document.selection只有IE支持,window.getSelection()也只有FireFox和   Safari支持,都不是标准语法。 
    selection   对象

    代表了当前激活选中区,即高亮文本块,和/或文档中用户可执行某些操作的其它元素。 
    selection   对象的典型用途是作为用户的输入,以便识别正在对文档的哪一部分正在处理,或者作为某一操作的结果输出给用户。 
       
    用户和脚本都可以创建选中区。用户创建选中区的办法是拖曳文档的一部分。脚本创建选中区的办法是在文本区域或类似对象上调用   select   方法。要获取当前选中区,请对   document   对象应用   selection   关键字。要对选中区执行操作,请先用   createRange   方法从选中区创建一个文本区域对象。 
       
    一个文档同一时间只能有一个选中区。选中区的类型决定了其中为空或者包含文本和/或元素块。尽管空的选中区不包含任何内容,你仍然可以用它作为文档中的位置标志。

    展开全文
  • 数据特征的选取

    万次阅读 2017-09-14 14:50:36
    但纹理只是一种物体表面的特性,无法完全反映出物体的本质属性,所以仅利用纹理特征无法获得高层次图像内容,且纹理特征还有一个很明显的缺点是当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差。...
    图像特征的提取和选择是图像处理过程中很重要的环节,对后续图像分类有着重要的影响,并且对于图像数据具有样本少,维数高的特点,要从图像中提取有用的信息,必须对图像特征进行降维处理,特征提取与特征选择就是最有效的降维方法,其目的是得到一个反映数据本质结构、识别率更高的特征子空间 。

    一.原始特征提取

    1.图像的基本特征

    • 颜色特征
    • 形状特征
    • 纹理特征
    • 空间关系特征

    2.基于颜色特征的提取方法 

    • 颜色直方图
    • 颜色集,是对颜色直方图的一种近似,其将图像表达为一个二进制的颜色索引集
    • 颜色矩,其将图像中任何的颜色分布用它的矩来表示
    • 颜色聚合向量
    • 颜色相关图
    颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。由于颜色对图像或图像区域的方向、大小等变化不敏感,所以颜色特征不能很好的捕捉图像中对象的局部特征。另外,仅使用颜色特征查询时,如果数据库很大,常会将许多不需要的图像也检索出来。颜色直方图是最常用的表达颜色特征的方法,其优点是不受图像旋转和平移变化的影响,进一步借助归一化还可不受图像尺度变化的影响,基缺点是没有表达出颜色空间分布的信息。

    3.基于纹理特征的提取方法

    • 基于统计的灰度共生矩阵和能量谱函数法
    • 几何法,例如基于图像基元的结构化方法
    • 模型法,以图像的构造模型为基础,采用模型参数作为纹理特征,典型的方法有随机场模型法
    • 信号处理法,例如,小波变换
    纹理特征也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质。作为一种统计特征,纹理特征常具有旋转不变性,并且对于噪声有较强的抵抗能力。但纹理只是一种物体表面的特性,无法完全反映出物体的本质属性,所以仅利用纹理特征无法获得高层次图像内容,且纹理特征还有一个很明显的缺点是当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差。

    4.基于形状特征的提取方法

    • 基于边界的,例如Hough变换,傅里叶变换等
    • 基于区域的,例如矩不变量,几何矩特征,转动惯量等
    • 其他方法,例如有限元法,旋转函数和小波描述符等
    基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索 ,但也存在一些问题,例如当目标有变形时检索结果就不太可靠,且许多形状特征仅描述了目标的局部特征,对全面描述目标有较高的时间和空间要求等。

    5.基于空间关系的特征提取方法

    空间关系,是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系,这些关系可分为连接/邻接关系、交叠/重叠关系和包含/包容关系等。提取图像空间关系特征可以有两种方法:一种方法是首先对图像进行自动分割,划分出图像中所包含的对象或颜色区域,然后根据这些区域提取图像特征,并建立索引;另一种方法则简单地将图像均匀地划分为若干规则子块,然后对每个图像子块提取特征,并建立索引。
    空间关系特征的使用可加强对图像内容的描述区分能力,但空间关系特征常对图像或目标的旋转、反转、尺度变化等比较敏感。另外,实际应用中,仅仅利用空间信息往往是不够的,不能有效准确地表达场景信息。

    6.小结

    上述特征提取方法是图像特征的初步获取,其各有利弊。针对不同的实际问题,可选择适当的图像特征提取方法。但有时仅用单一的特征来进行图像检索或匹配,其结果准确度不高,为了提高准确度,有人提出了多特征融合的图像检索或匹配技术。

    二.特征提取

    对于初步获取的图像特征,可能维数依然很大,且可能包含一定的无关或冗余特征。这里的特征提取是指从初步获取的原始特征中通过一定的数学运算得到一组新的特征也称作特征变换,其可以有效的降低特征空间维数和消除特征之间可能存在的相关性,减少特征中的无用信息。

    1.特征提取的基本方法

    • 线性方法,如主成分分析法(PCA),线性判别分析法(LDA),多维尺度法(MDS)
    • 非线性方法,如核方法(KPCA,KDA),流型学习
    2.主成分分析法
    PCA方法是从一组特征中通过求解最优的正交变换,得到一组相互间方差最大的新特征,它们是原始特征的线性组合,且相互之间是不相关的,再对新特征进行重要性排序,选取前几个主成分。用较少的主成分来表示数据,可以实现特征的降维,还可以消除数据中的噪声。该算法不考虑样本的类别信息,是一种无监督的方法。
    3.线性判别方法
    该方法基本思想是将高维的数据样本投影到最佳判别的矢量空间,以达到提取分类信息和压缩特征空间维数的效果,投影后保证数据样本在新的子空间类间距离最大和类内距离最小,即样本数据在该空间中有最佳的可分离性。Fisher线性判别分析是最具有代表性的LDA 法。
    4.多维尺度法
    MDS是一种很经典的数据映射方法,其根据样本之间的距离关系或不相似度关系在低维空间里生成对样本的一种表示。MDS分为度量型和非度量型两种,度量型MDS把样本间的距离关系或不相似度关系看作一种定量的度量,尽可能的在低维空间里保持这种度量关系;非度量型MDS把样本间的距离关系或不相似度关系看作一种定性的关系,在低维空间里只需保持这种关系的顺序。
    5.核主成分分析法
    该方法对样本进行非线性变换,通过在变换空间进行主成分分析来实现在原空间的非线性主成分分析。根据可再生希尔伯特空间的性质,在变换空间中的协方差矩阵可以通过原空间中的核函数进行运算,从而绕过复杂的非线性变换。核方法对于不同的问题选择合适的核函数类型,不同的核函数类型反映了对数据分布的不同假设,也可以看作是对数据引入了一种非线性距离度量。
    6.基于流型学习的方法
    其基本思想是通过局部距离来定义非线性距离度量,在样本分布较密集的情况下可以实现各种复杂的非线性距离度量。具体方法有:
    • 等容特征映射(IsoMap)--欧氏距离累加
    • 局部线性嵌入(LLE)--近邻样本线性重构
    • 拉普拉斯特征映射(LE)--邻域选取和样本间相似度表达
    • 其他改进算法

    三.特征选择

    特征选择也是降低特征空间维数的一种基本方法,它是用计算的方法从一组给定的特征中选出能够有效识别目标的最小特征子集。与特征提取最本质的区别就是特征提取主要是从原特征空间到新特征空间的一种变换,特征提取到的子特征会失去对类别原有主观意义的具体解释,而特征选择可以保持对这中具体意义的解释。

    1.特征选择的基本步骤

    • 候选特征子集的生成(搜索策略)
    • 子集评价(评价准则)
    • 停止准则
    • 结果验证
    2.特征选择方法分类
    根据搜索策略和评价准则的不同,可对特征选择方法进行如下分类:

    按搜索策略分:

    • 基于全局寻优的分支定界法
    该方法是一种从包含所有候选特征开始,逐步去掉不被选中的特征的自顶向下的方法,具有回溯的过程,能够考虑到所有可能的组合。
    其基本思想是:设法将所有可能的特征组合构建成一个树状结构,按照特定的规律对树进行搜索,使得搜索过程尽可能早的达到最优解而不必遍历整棵树。
    要做到这一点必须要求准则判据对特征具有单调性,且当处理高维数据时,算法复杂度较高,所以很难广泛使用。
    • 基于启发式搜索的方法
    很多情况下,即使采取分支定界法,全局寻优的方法计算量可能仍然很大,因此提出了一些基于启发式搜索的次优选择算法:单独最优特征组合,序列前向选择(SFS)及广义的SFS(GSFS),序列后向选择(SBS)及广义的SBS(GSFS),增l去r选择及广义的增l去r选择方法,浮动搜索方法及浮动的广义后向选择方法(FGSBS)等。
    • 随机搜索方法
    该类方法在计算中将特征选择问题与遗传算法、模拟退火算法、粒子群优化算法,随机森林或一个随机重采样过程结合起来,以概率推理和采样过程作为算法基础,基于分类估计的有效性,在算法运行过程中对每个特征赋予一定的权重,再根据给定的或自适应的阈值对特征的重要性进行评价。例如,Relief及其扩展算法就是一种典型的根据权重选择特征的随机搜索方法,它能有效的去掉无关特征,但不能去除冗余特征,且只能用于两类分类问题。

    按评价准则分:

    特征选择方法依据是否独立于后续的学习算法可分为过滤式(Filter)和封装式(Wrapper)和嵌入式(Embedded)三种。Filter方式独立于学习算法,直接利用训练数据的统计特性来评估特征。Wrapper方式利用学习算法的训练准确率来评价特征子集。Embedded方式结合了Filter和Wrapper方式。
    • Filter方式
    Filter式的特征选择方法一般使用评价准则来使特征与类别间的相关性最大,特征间的相关性最小。该方式可以很快的排除掉很多不相关的噪声特征,缩小优化特征子集搜索的规模,计算效率高,通用性好,可用作特征的预筛选器。但当特征和分类器息息相关时,该方法不能保证选择出一个优化特征子集,即使能找到一个满足条件的优化子集,其计算规模也比较大。根据评价函数可分为四类:
    a.基于距离度量的
    常用的距离度量有:欧氏距离,Minkowski距离,Chebychev距离和平方距离等。
    Relief及其扩展算法ReliefF和RRelidfF,分支定界法和BFF算法都是基于距离度量的特征选择算法。
    b.基于信息度量的
    常用信息度量:信息增益与互信息信息增益:可以有效的选出关键特征,剔除无关特征;互信息:描述两个随机变量之间相互依存关系的强弱,常见算法如下:
    • 基于互信息的MIFS算法
    • 基于最小冗余最大相关(mRMR)的方法
    • 基于互信息的快速滤波算法FCBF
    • 基于条件互信息的CMIM算法
    • 基于动态互信息的特征选择算法
    由于信息熵理论不要求假定数据分布是已知的能够以量化的形式度量特征间的不确定程度,且能有效地度量特征间的非线性关系,基于信息度量的特征选择算法成为近年来研究的热点,提出了许多基于信息理论的改进算法。
    c.基于依赖性度量的
    该方法利用一些统计相关系数,如Pearson相关系数,Fisher得分,方差得分,t检验,秩和检验或Hilbert-Schmidt依赖性准则等来度量特征相对于类别可分离性间的重要性程度。有人提出了一种基于稀疏表示的特征选择方法,且在人脸图像聚类实验中取得了较好的结果。
    d.基于一致性度量的
    该方法其思想是寻找全集有相同区分能力的最小子集,尽可能保留原始特征的辨识能力。它具有单调、快速、去除冗余和不相关特征、处理噪声等优点,但其对噪声数据敏感,且只适合处理离散特征。
    典型的算法有Focus,LVF等。
    • Wrapper方式
    Wrapper方式依据选择子集最终被用于构造分类模型,把特征选择算法作为学习算法的一个组成部分,直接使用训练结果的准确率作为特征重要性程度的评价标准。该方法在速度上要比Filter方式慢,但它所选的优化特征子集规模相对要小的多,非常有利于关键特征的辨识;同时其准确率比较高,但泛化能力较差,时间复杂度较高。
    目前,关于Wrapper方式的研究也比较多,例如:
    Hsu等人用决策树来进行特征选择,采用遗传算法来寻找使得决策树分类错误率最小的一组特征子集
    Chiang等人将Fisher判别分析与遗传算法结合,用于化工故障过程中辨识关键变量,其效果也不错。
    Guyon等人利用支持向量机的分类性能衡量特征的重要性,最终构造了一个分类性能较高的分类器。
    Krzysztof提出了一种基于相互关系的双重策略的Wrapper特征选择方法FFSR(fast feature subset ranking),以特征子集作为评价单位,以子集收敛能力作为评价标准
    戴平等人提出了一种基于SVM的快速特征选择方法
    • Embedded方式
    针对Filter和Wrapper方式的利弊,提出了Embedded方式的特征选择方法,该方式先用filter方法初步去掉无关或噪声特征,只保留少量特征,减少后续搜索规模,然后再用Wrapper方法进一步优化,选择分类准确率最高的特征子集。例如,Li G-Z等人先使用互信息度量标准和随机重采样技术获取前k个重要特征,再使用SVM构造分类器。

    四.总结

    从图像中提取特征,首先根据具体的问题,判断选取的图像特征,如颜色或纹理。针对不同的特征选择具体的提取方法,如常用的基于颜色特征的颜色直方图或基于纹理的灰度共生矩阵和小波变换等。这是第一步对图像原始特征的提取。由于原始特征可能维数很高,或包含大量的冗余特征和无关特征,会使后续算法的计算复杂度变得很高,所以进一步进行特征提取和特征选择,抽取样本最相关特征,降低数据维数和消除不相关特征和冗余特征。
    统计意义上的特征提取是由获取到的原始特征经过线性或非线性变换得到较少数量且更具有的表达能力的新特征。常用的线性变换有PCA、LDA、MDS,非线性变换有KPCA、流型学习等。有时基本的特征提取方法由于自身的局限性或不能满足在某些具体问题中的要求,就需要对这些方法进行改进。例如,PCA不考虑样本类别,因此得到的低维空间相对判别分类而言不是最优的;在样本类内分布为高斯分布且协方差相同时,LDA可以得到最优线性判别分析转换矩阵,但现实世界中类内分布的复杂度远远超出了高斯分布;MDS方法中目标函数的定义及对该目标函数最小化选择适合的优化方法;KPCA方法中核函数的选择与核函数的参数设定等,都需要根据具体的情况选择与设定;关于流型学习中的各种方法,在样本分布较稀疏时,对近邻样本间距离的度量可能会有较大的偏差。
    特征提取技术很难解释新特征与样本类别之间的相互关系,但在某些领域内对这种相互关系的理解却很重要,所以,在这种情况下,特征选择就更加有效。特征选择是指从原始特征中选择最少的特征,使所选特征与类别之间具有最大相关度,特征与特征之间具有最小相关度。根据评价标准是否依赖于具体的学习算法,特征选择算法分为Filter,Wrapper,Embedded三种方式。Filter方式依据数据内在的结构特征选择最相关的特征,该方式主要是选取对样本距离及相关性的度量准则。直接依赖学习算法准确率的Wrapper方式,主要是对学习算法的选择,通常选择SVM作为评估标准。Embeded方式将特征选择视为学习算法的子系统,该算法计算复杂度介于Wrapper和Filter方式之间,选择的特征比Filter方式更准确,但需要与新设计的算法相结合。
    最后,获取特征子集的选择策略,在高维样本空间对所有候选子集进行评估测试是不实际的。最优特征选择算法-分支界定法不仅对准则判据有要求,且计算量还是很大,所以又提出了基于启发式的次优选择算法,还可以利用一些群智能的随机搜索算法,例如GA、PSO、SAA,可以更好的提高搜索效率。

    展开全文
  • jQuery选择器和选取方法

    千次阅读 2016-07-19 15:02:51
    我们已经使用了带有简单Css选择器的jQuery选取函数:$()。现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了。  一、jQuery选择器 在CSS3选择器标淮草案定义的选择器语法中,jQuery...

    我们已经使用了带有简单Css选择器的jQuery选取函数:$()。现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了。

      一、jQuery选择器

    在CSS3选择器标淮草案定义的选择器语法中,jQuery支持相当完整的一套子集,同时还添加了一些非标准但很有用的伪类。注意:本节讲述的是 jQuery选择器。其中有不少选择器(但不是全部)可以在CSS样式表中使用。选择器语法有三层结构。你肯定已经见过选择器中最简单的形式。”#te st”选取id属性为”test”的元素。”blockquote”选取文档中的所有<blockquote>元素,而”div.note” 则选取所有class属性为”note”的<blockquote>元素。简单选择器可以组合成“组合选择器”,比如 “div.note>p”和“blockquote i”,只要用组合字符做分隔符就行。简单选择器和组合选择器还可以分组成逗号分隔的列表。这种选择器组是传递给$()函数最常见的形式。在解释组合选择器 和选择器组之前,我们必须先了解简单选择器的语法。

    1、简单选择器

    简单选择器的开头部分(显式或隐式地)是标签类型声明。例如,如果只对<P>元素感兴趣,简单选择器可以用“P”开头。如果选取的元素和标签名无关,则可以使用通配符“*”号来代替。如果选择器没有以标签名或通配符开头,则隐式含有一个通配符。

    标签名或通配符指定了备选文档元素的一个初始集。在简单选择器中,标签类型声明之后的部分由零个或多个过滤器组成。过滤器从左到右应用,和书写顺序一致,其中每一个都会缩小选中元素集。下表列举了jQuery支持的过滤器。

    jQuery选择过滤器
    过滤器 含义
    #id 匹配id属性为id的元素。在有效的}ITML文档中,永远不会出现多个元素拥有相同的ID,因此该过滤器通常作为独立选择器来使用
    .class 匹配class属性(是一串被解析成用空格分隔的单词列表)含有class单词的所有元素
    [attr] 匹配拥有attr属性(和值无关)的所有元素
    [attr=val] 匹配拥有attr属性且值为val的所有元素
    [attr!=val] 匹配没有attr属性、或attr属性的值不为val的所有元素((jQuery的扩展)
    [attr^=val] 匹配attr属性值以val开头的元素
    [attr$=val] 匹配attr属性值以val结尾的元素
    [attr*=val] 匹配attr属性值含有val的元素
    [attr~=val] 当其attr属性解释为一个由空格分隔的单词列表时,匹配其中包含单词val的元素。因此选择器“div.note”与“div [class~=note]”相同
    [attr|=val] 匹配attr属性值以val开头且其后没有其他字符,或其他字符是以连字符开头的元素
    :animated 匹配正在动画中的元素,该动画是由jQuery产生的
    :button 匹配<button type=”button”>和<input type=”button”>元素(jQuery的扩展)
    :checkbox 匹配<input type=”checkbox”>元素( jQuery的扩展),当显式带有input标签前缀”input:checkbox”时,该过滤器更高效
    :checked 匹配选中的input元素
    :contains(text) 匹配含有指定text文本的元素(jQuery的扩展)。该过滤器中的圆括号确定了文本的范围—无须添加引号。被过滤的元素的文本是由textContent或innerText属性来决定的—这是原始文档文本,不带标签和注释
    :disabled 匹配禁用的元素
    :empty 匹配没有子节点、没有文本内容的元素
    :enabled 匹配没有禁用的元素
    :eq(n) 匹配基于文档顺序、序号从0开始的选中列表中的第n个元素(jQuery的扩展)
    :even 匹配列表中偶数序号的元素。由于第一个元素的序号是0,因此实际上选中的是第1个、第3个、第5个等元素(jQuery的扩展)
    :file 匹配<input type=”file”>元素(jQuery的扩展)
    :first 匹配列表中的第一个元素。和“:eq(0)”相同(jQuery的扩展)
    :first-child 匹配的元素是其父节点的第一个子元素。注意:这与“:first”不同
    :gt(n) 匹配基于文档顺序、序号从0开始的选中列表中序号大于n的元素( jQuery的扩展)
    :has(sel) 匹配的元素拥有匹配内嵌选择器sel的子孙元素
    :header 匹配所有头元素:<h1>, <h2>, <h3>, <h4>, <h5>或<h6> (jQuery的扩展)
    :hidden 匹配所有在屏幕上不可见的元素:大体上可以认为这些元素的offsetWidth和offsetHeight为0
    :image 匹配<input type=”image”>元素。注意该过滤器不会匹配<img>元素( jQuery的扩展)
    :input 匹配用户输入元素:<input>, <textarea>, <select>和<button>( jQuery的扩展)
    :last 匹配选中列表中的最后一个元素(( jQuery的扩展)
    :last-child 匹配的元素是其父节点的最后一个子元素。注意:这与“:last”不同
    :lt(n) 匹配基于文档顺序、序号从0开始的选中列表中序号小于n的元素( jQuery的扩展)
    :not(sel) 匹配的元素不匹配内嵌选择器sel
    :nth(n) 与“:eq(n)”相同(jQuery的扩展)
    :nth-child(n) 匹配的元素是其父节点的第n个子元素。。可以是数值、单词even,单词odd或计算公式。 使用“:nth-child(even)”来选取那些在其父节点的子元素中排行第2或第4等序号的元素。使用“:nth-child(odd)”来选取那 些在其父节点的子元素中排行第1、第3等序号的元素。
    更常见的情况是,n是xn或x n+y这种计算公式,其中x和y是整数,n是字面量n。因此可以用nth-child(3n+1)来选取第1个、第4个、第7个等元素。
    注意该过滤器的序号是从1开始的,因此如果一个元素是其父节点的第一个子元素,会认为它是奇数元素,匹配的是3n+1,而不是3n。要和“:even以及“:odd”过滤器区分开来,后者匹配的序号是从0开始的。
    :odd 匹配列表中奇数(从0开始)序号的元素。注意序号为1和3的元素分别是第2个和第4个匹配元素( jQuery的扩展)
    :only-child 匹配那些是其父节点唯一子节点的元素
    :parent 匹配是父节点的元素,这与“:empty”相反(jQuery的扩展)
    :password 匹配<input type=”password”>元素(jQuery的扩展)
    :radio 匹配<input type=”radio”>元素( j Query的扩展)
    :reset 匹配<input type=”reset”>和<button type=”reset”>元素(jQuery的扩展)
    :selected 匹配选中的<option>元素。使用“:checked”来选取选中的复选框和单选框(jQuery的扩展)
    :submit 匹配<input type=”submit”>和<button type=”submit”>元素(jQuery的扩展)
    :text 匹配<input type=”text”>元素(jQuery的扩展)
    :visible 匹配所有当前可见的元素:大体上可以认为这些元素的offsetWidth和offsetHeight的值不为0,这和“:hidden”相反

    注意:表中列举的部分选择器在圆括号中接受参数。例如,下面这个选择器选取的元素在其父节点的子元素中排行第1或第2等,只要它们含有“JavaScript”单词,就不包含元素。

    p:nth-child(3n+1): text (JavaScript):not(:has(a))

    通常来说,指定标签类型前缀,可以让过滤器的运行更高效。例如,不要简单使用”:radio”来选取单选框按钮,使用“input:radio”会 更好。ID过滤器是个例外,不添加标签前缀时它会更高效。例如,选择器“#address”通常比更明确的“form#address”更高效。

    2、组合选择器

    使用特殊操作符或“组合符”可以将简单选择器组合起来,表达文档树中元素之间的关系。下表列举了jQuery支持的组合选择器。这些组合选择器与CSS3支持的组合选择器是一样的。1

    下面是组合选择器的一些例子:

    1
    2
    3
    4
    "blockquote i"              //匹配<blockquote>里的<i>元素
    "ol > li"                   //<1i>元素是<of>的直接子元素
    "#output+*"                 //id="output"元素后面的兄弟元素
    "div.note > h1+p"           //紧跟<h1>的<P>元素,在<div class="note">里面

    注意组合选择器并不限于组合两个选择器:组合三个甚至更多选择器也是允许的。组合选择器从左到右处理。

    3、选择器组

    传递给$()函数(或在样式表中使用)的选择器就是选择器组,这是一个逗号分隔的列表,由一个或多个简单选择器或组合选择器构成。选择器组匹配的元 素只要匹配该选择器组中的任何一个选择器就行。对我们来说,一个简单选择器也可以认为是一个选择器组。下面是选择器组的一些例子:

    1
    2
    3
    4
    "h1, h2,h3"             //匹配<h1>, <h2>和<h3>元素
    "#p1, #p2, #p3"         //匹配id为p1, p2或p3的元素
    "div.note, p.note"      //匹配class="note"的<div>和<P>元素
    "body>p,div.note>p"     //<body>和<div class="note">的<P>子元素

    注意:CSS和jQuery选择器语法允许在简单选择器的某些过滤器中使用圆括号,但并不允许使用圆括号来进行更常见的分组。例如,不能把选择器组或组合选择器放在圆括号中并且当成简单选择器:

    1
    2
    (h1, h2, h3)+p          //非法
    h1+p, h2+p, h3+p        //正确的写法

      二、选取方法

    除了$()函数支持的选择器语法,jQuery还定义了一些选取方法。本章中我们已看到过的大部分jQuery方法都是在选中元素上执行某种操作。选取方法不一样:它们会修改选中元素集,对其进行提取、扩充或仅作为新选取操作的起点。

    本节描述这些选取方法。你会注意到这些选取方法中的多数提供的功能与选择器语法的功能是一样的。

    提取选中元素最简单的方式是按位置提取。first()返回的jQuery对象仅包含选中元素中的第一个,last()返回的jQuery对象则只 包含最后一个元素。更通用的是,eq()方法返回物Query对象只包含指定序号的单个选中元素。(在jQuery 1.4中,负序号也是允许的,会从选区的末尾开始计数。)注意这些方法返回的jQuery对象只含有一个元素。这与常见的数组序号是不一样的,数组序号返 回的单一元素没有经过jQuery包装:

    1
    2
    3
    4
    5
    6
    var paras=$("p");
    paras.first()           //仅选取第一个<p>元素
    paras.last()            //仅选取最后一个<P>
    paras.eq(1)             //选取第二个<P>
    paras.eq(-2)           //选取倒数第二个<P>
    paras[1]                //第二个<P>元素自身

    通过位置提取选区更通用的方法是slice()o jQuery的slice()方法与Array.slice()方法类似:前者接受开始和结束序号(负序号会从结尾处计算),返回的jQuery对象包含 从开始到结束序号(但不包含结束序号)处的元素集。如果省略结束序号,返回的对象会包含从开始序号起的所有元素:

    1
    2
    $("p").slice(2,5)       //选取第3个、第4个和第5个<P>元素
    $("div").slice(-3)      //选取最后3个<div>元素

    filter()是通用的选区过滤方法,有3种调用方式:

    1.   传递选择器字符串给filter(),它会返回一}jQuery对象,仅包含也匹配该选择器的选中元素。
    2.   传递另一个jQuery对象给filter(),它会返回一个新的jQuery对象,该对象包含这两们Query对象的交集。也可以传递元素数组甚至单一文档元素给filter()。
    3.   传递判断函数给filter(),会为每一个匹配元素调用该函数,filter()则返回一个jQuery对象,仅包含判断函数为true(或任意真值)的元素。在调用判断函数时,this值为当前元素,参数是元素序号。
      1
      2
      3
      $("div").filter(".note")        //与$("div.note")一样
      $("div").filter($(".note"))     //与$("div.note")一样
      $("div").filter(function(idx){return idx%2 == 0})         //与$("div:even")一样

    not()方法与filter()一样,除了含义与filter()相反。如果传递选择器字符串给not()它会返回一个新的jQuery对象,该 对象只包含不匹配该选择器的元素。如果传递jQuery对象、元素数组或单一元素给not(),它会返回除了显式排除的元素之外的所有选中元素。如果传递 判断函数给not(),该判断函数的调用就与在filter()中一样,只是返回的jQuery对象仅包含那些使得判断函数返回false或其他假值的元 素:

    1
    $("div").not("#header, #footer");        //除了两个特殊元素之外的所有元素

      在jQuery 1.4中,提取选区的另一种方式是has()方法。如果传入选择器,has()会返回一个新的jQuery对象,仅包含有子孙元素匹配该选择器的选中元素。如果传入文档元素给has(),它会将选中元素集调整为那些是指定元素祖先节点的选中元素:

    1
    $("p").has("a[href]")         //包含链接的段落

    add()方法会扩充选区,而不是对其进行过滤或提取。可以将传给$()函数的任何参数(除了函数)照样传给add()方法。add()方法会返回 原来的选中元素,加上传给$()函数的那些参数所选中(或创建)的那些元素。add()会移除重复元素,并对该组合选区进行排序,以便里面的元素按照文档 中的顺序排列:

    1
    2
    3
    4
    5
    6
    //选取所有<div>和所有<P>元素的等价方式
    $("div, p")             //使用选择器组
    $("div").add(p)         //给add()传入选择器
    $("div").add($("p"))    //给add()传入jQuery对象
    var paras = document.getElementsByTagName("p");       //类数组对象
    $("div").add(paras);        //给add()传入元素数组

    1.将选中元素集用做上下文

    上面描述的filter(). add()、和not()方法会在各自的选中元素集上执行交集、并集和差集运算。jQuery还定义一些其他选取方法可将当前选中元素集作为上下文来使 用。对选中的每一个元素,这些方法会使用该选中元素作为上下文或起始点来得到新的选中元素集,然后返回一个新的jQuery对象,包含所有新的选中元素的 并集。与add()方法类似,会移除重复元素并进行排序,以便元素会按照在文档中出现的顺序排列好。

    该类别选取方法中最通用的是find()。它会在每一个当前选中元素的子孙元素中寻找与指定选择器字符串匹配的元素,然后它返回一个新的 jQuery对象来代表所匹配的子孙元素集。注意这些新选中的元素不会并入已存在的选中元素集中。同时注意find()和filter()不 同,filter()不会选中新元素,只是简单地将当前选中的元素集进行缩减:

    1
    $("div").find("p")            //在中查找元素,与$("div p")相同

    该类别中的其他方法返回新的jQuery对象,代表当前选中元素集中每一个元素的子元素、兄弟元素或父元素。大部分都接受可选的选择器字符串作为参数。不传入选择器时,它们会返回所有子元素、兄弟元素或父元素。传入选择器时,它们会过滤元素集,仅返回匹配的。

    children()方法返回每一个选中元素的直接子元素,可以用可选的选择器参数进行过滤:

    1
    2
    3
    //寻找id为"header"和"footer"元素的子节点元素中的所有<span>元素
    //与$("#header>span, #footer>span")相同
    $("#header, #footer").children("span")

    contents()方法与children()方法类似,不同的是它会返回每一个元素的所有子节点,包括文本节点。如果选中元素集中 有<iframe>元素,contents()还会返回该<iframe>内容的文档对象。注意contents()不接受可选 的选择器字符串参数—因为它返回的文档节点不完全是元素,而选择器字符串仅用来描述元素节点。
    next()和prev()方法返回每一个选中元素的下一个和上一个兄弟元素(如果有的话)。如果传入了选择器,会只选中匹配该选择器的兄弟元素:

    1
    2
    $("h1").next("p")      //与$("h1+p")相同
    $("h1").prev()         //<h1>元素前面的兄弟元素

    nextAll()和prevAll()返回每一个选中元素前面或后面的所有兄弟元素(如果有的话)。siblings()方法则返回每一个选中元素的所有兄弟元素(选中元素本身不是自己的兄弟元素)。如果给这些方法传人选择器,则只会返回匹配的兄弟元素:

    1
    2
    $("#footer").nextAll("p")       //紧跟#footer元素的所有<P>兄弟元素
    $("#footer").prevAll()          //#footer元素前面的所有兄弟元素

    从jQuery 1.4开始,nextUntil()和prevUntil()方法接受一个选择器参数,会选取选中元素后面或前面的所有兄弟元素,直到找到某个匹配该选择 器的兄弟元素为止。如果省略该选择器,这两个方法的作用就和不带选择器的nextAll()和prevAll()一样。

    parent()方法返回每一个选中元素的父节点:

    1
    $("li").parent()        //列表元素的父节点,比如<u1>和<ol>元素

    parents()方法返回每一个选中元素的祖先节点(向上直到元素)。parent()和parents()都接受一个可选的选择器字符串参数:

    1
    $("a[href]").parents("p")            //含有链接的<P>元素

    parentsUntil()返回每一个选中元素的祖先元素,直到出现匹配指定选择器的第一个祖先元素。closest()方法必须传人一个选择器 字符串,会返回每一个选中元素的祖先元素中匹配该选择器的最近一个祖先元素(如果有的话)。对该方法而言,元素被认为是自身的祖先元素。在jQuery 1.4中,还可以给closest()传入一个祖先元素作为第二个参数,用来阻止jQuery往上查找时超越该指定元素:

    1
    2
    $("a[href]").closest("div")         //包含链接的最里层<div>
    $("a[href]").parentsUntil(":not(div)")      //所有包裹<a>的<div>元素

    2、恢复到之前的选中元素集

    为了实现方法的链式调用,很多jQuery对象的方法最后都会返回调用对象。然而本节讲述的方法都返回新的jQuery对象。可以链式调用下去,但必须清晰地意识到,在链式调用的后面所操作的元素集,可能已经不是该链式调用开始时的元素集了。

    实际情况还要复杂些。当这里所描述的选取方法在创建或返回一个新的ejQuery对象时,它们会给该对象添加一个到它派生自的旧jQuery对象的 内部引用。这会创建一个jQuery对象的链式表或栈。end()方法用来弹出栈,返回保存的jQuery对象。在链式调用中调用end()会将匹配元素 集还原到之前的状态。考虑以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //寻找所有<div>元素,然后在其中寻找<P>元素
    //高亮显示<P>元素,然后给<div>元素添加一个边框
    //首先,不使用链式调用
    var divs = $("div");
    var paras = div.find("p");
    paras.addClass("highlight");
    divs.css("border", "solid black 1px");
     
    //下面展现如何使用链式调用来实现
    $("div").find("p").addClass("highlight").end().css("border", "solid black 1px");
    //还可以将操作调换顺序来避免调用end()
    $("div").css("border", "solid block 1px").find("p").addClass("highlight");

    如果想手动定义选中元素集,同时保持与end()方法的兼容,可以将新的元素集作为数组或类数组对象传递给push5tack()方法。指定的元素会成为新的选中元素,之前选中的元素集则会压入栈中,之后可以用end()方法还原它们:

    1
    2
    3
    var sel = $("div");             //选取所有<div>元素
    sel.pushStack(document.getElementsByTagName("p"));      //修改为所有<P>元素
    sel.end();                      //还原为<div>元素

    既然我们已经讲解了end()方法及其使用的选区栈,就有最后一个方法需要讲解。andSelf()返回一个新的jQuery对象,包含当前的所有 选中元素,加上之前的所有选中元素(会去除重复的)。andSelf()和add()方法一样,或许“addPrev”是一个更具描述性的名字。作为例 子,考虑上面代码的下述变化:高亮显示<P>元素及其父节点中的<div>元素,然后给这些<div>元素添加边 框:

    1
    2
    3
    4
    $("div").find("p").andSelf().           //寻找<div》中的<P>,合并起来
    addClass("highlight").              //都高亮
    end().end().                            //弹出栈两次,返回$("div")
    css("border""solid black 1px");       //给divs添加边框


    原文链接:http://www.cnblogs.com/MaxIE/p/4078869.html

    展开全文
  • shuf 随机选取txt文件特定行数

    千次阅读 2018-05-28 16:00:44
    一, 多个 txt 文件合并为一个txt 文件 现有 neg_12.txt , part_12.txt , pos_12.txt 三个文件 , 合并为一个名为 train.txt的...就会在目录下生成一个 包含 上面三个文件内容的 train.txt文件。二 ,随机选取...

    一, 多个 txt 文件合并为一个txt 文件

            现有 neg_12.txt  ,  part_12.txt   , pos_12.txt  三个文件 , 合并为一个名为 train.txt的文件

    cat neg_12.txt part_12.txt pos_12.txt > train.txt
    

    就会在目录下生成一个 包含 上面三个文件内容的 train.txt文件。

    二 ,随机选取 train.txt 中指定行数

           查看 shuf 命令帮助 “shuf --help”

    用法: shuf [选项]... [文件]
     或者:  shuf -e [选项]... [参数]...
     或者:  shuf -i LO-HI [选项]...
    Write a random permutation of the input lines to standard output.
    
    如果没有指定文件,或者文件为"-",则从标准输入读取。
    
    必选参数对长短选项同时适用。
      -e, --echo                treat each ARG as an input line
      -i, --input-range=LO-HI   treat each number LO through HI as an input line
      -n, --head-count=COUNT    output at most COUNT lines
      -o, --output=FILE         write result to FILE instead of standard output
          --random-source=FILE  get random bytes from FILE
      -r, --repeat              output lines can be repeated
      -z, --zero-terminated     line delimiter is NUL, not newline
          --help		显示此帮助信息并退出
          --version		显示版本信息并退出
    

    可以根据帮助信息进行操作 ,如随机选取train.txt中的200行保存在新文件 test.txt中

    shuf train.txt -n 200 -o test.txt
    
    则在test.txt中为train.txt中随机打乱后的200行数据。
    展开全文
  • 关键词对网站的重要性不言而喻,它是确立网站内容扩展的方向。而选取合适的核心关键词,就相当于选择了一条通往成功的道路。笔者在之前一篇文章中也简单阐述了seo关键词分析的重要性。那么,又该如何选取正确的...
  • K-Means中K值的选取

    千次阅读 2019-10-02 21:57:31
    为了修正MC带来的误差,我们计算sk也即标准差来矫正Gap Statistic。 选择满足 的最小的k作为最优的聚类个数。下图阐释了Gap Statistic的过程。 Python实现: import scipy from scipy . spatial . ...
  • 前面已经讲了如何用pandas导入数据,这篇文章就来讲一些常用的数据查看、数据选取。做到了这一步,就可以进行一些快速的描述性分析了! 要查看数据与选取数据,我们首先得了解python里数据存储的方式,然后才能...
  • 将日常工作中遇到的数数据冲突和样本源的方法进行总结,其中主要包括 实际业务数据冲突、样本选取问题、数据共线性 等思路,并且长期更新。 实际业务数据冲突 多业务数据源冲突是指来自多个或具有相同业务逻辑但结果...
  • 互联网项目需要选取适合于该行业项目的特征(‘无快不胜’和需求变化多)的流程文档。 可以通过以下几个步骤为一个互联网项目选取合适的文档流程: ■ 流程文档了解期: ◇ 找出目前项目/团队中最需要解决或提高...
  • Zxing图片识别 从相册选取二维码图片进行解析总结  在Zxing扫描识别和图片识别的解析对象是相同的 本文分三个步骤: 1 获取相册的照片 2 解析二维码图片 3 返回结果   1) 获取相册照片 ...
  • 可以将复杂度和对数似然值变化的拐点对应的主题数作为标准主题数,拐点以后复杂度和对数似然值的变化区域平缓。观察拐点和趋势需要对数据可视化,因此,分别做复杂度、对数似然值与主题数目的趋势图。 关于主题数的...
  • 计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。  ◇ 测试分析报告:测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。 ...
  • 1 前言 【三者的内在逻辑】“设计反应谱”是为了方便工程师设计提出来的,现阶段我国规范使用的一种抗震设计方法。该方法是对结构抗震一个比较笼统的描述,具体而言,“设计反应谱”是...故存在地震动选取的问题。 .
  • 后来在DE2_USB_API中,开始发现了一个特别好适合的情形,我可以通过PC客户端的应用程序ControlPanel.exe,就可以控制FPGA的数码管、LCD、LED和RAM以及VGA视频口等内容,就这样情有独钟的看上了她,将她作为模板学习...
  • 标准Web系统的架构分层

    万次阅读 多人点赞 2015-06-22 10:30:36
    标准Web系统的架构分层 标准Web系统架构适用于传统的基于WEB浏览器/手机端的CRM系统、ERP系统、SaaS系统、O2O系统、商城系统、物流系统。架构的灵活性和业务适应性决定了不同的系统根据业务形态、访问量、安全性所...
  • MYSQL中特殊值如最大值、最小值、连续值、缺失值、重复值的选取
  • 文章目录内容介绍标准化&归一化红酒数据集进行标准化&归一化标准化处理对PCA主成分分析的影响 内容介绍 本章节为 特征标准化 处理总结,其中 等内容。 本专栏介绍关于数据分析工作中常用的 使用Python进行...
  • 1. oncontextmenu="window.event.returnValue=...2. 取消选取、防止复制 3. onpaste="return false" 不准粘贴 4. oncopy="return false;" oncut="return false;" 防止复制 5. IE地址栏前换成自己的图标 6. 可以
  • c语言标准

    千次阅读 2017-09-27 17:00:52
    标准库(Standard Library)是C语言重要的一部分,不过学习C语言这么长时间,都没有细致的了解过标准库到底中包含哪些内容,这几天打算来仔细看看这部分内容。 C语言标准库有各种不同的实现,比如最著名的glibc,...
  • node.getElementsByTagNmae; node可以为任何节点对象 1、通过class的值获取元素 ...2、通过选择器选取元素 语法: node.querySelector("选择器名"); 获取到第一个与选择器名匹配的元素 node.query...
  • Overview of the MPEG-CDVS Standard论文粗译(错误恳请指正)摘要CDVS标准,Compact Descriptors for visual search,视觉搜索紧凑描述子,是ISO/IEC运动图像专家组即MPEG最近发布的一个完整的标准。此标准的主要...
  • 预测准确率不高一方面是我们未对数据进行一定的预处理(包括归一化和标准化等),这样不能确保在使用优化方式时,对不同特征参数起到同样的影响。 其次是未深入挖掘数据特征间关系,比如当原始数据某些特征与目标值...
  • 标准文件打开保存框QFileDialog 单个文件打开 QFileDialog.getOpenFileName() 多个文件打开 QFileDialog.getOpenFileNames() 文件夹选取 QFileDialog.getExistingDirectory() 文件保存 QFileDialog....
  • SCORM标准及支持SCORM标准学习平台的设计 一、 引言 Internet在各领域的普及为信息和知识的交流传播提供了便捷的途径,而网络更成为一个公共的传递平台,基于网络的学习内容几乎可以被任何媒体传递;基于网络的...
  • MPEG标准

    千次阅读 2011-06-19 10:33:00
    MPEG是Moving Picture Experts Group的简称,其本意指代一个研究音频和视频编码标准的小组,如今,它泛值由该小组指定的一系列视频编码标准。自1998年成立以来,该小组已经相继制订了MPEG-1,MPEG-2,MPEG-3,...
  • 2013年1月,新一代视频编码标准H.265/HEVC正式发布。然而它并没有像H.264那样占据市场。在这期间,AVS2、AV1等竞争者也在逐步推出,究竟谁才能引领新一代视频编码标准呢?
  • 默认存储格式TextFILE存储格式,hive常用的有三种存储格式,具体参考我的其他博客篇,TEXTFILE存储格式内容可读性好,没有加密。    3.默认内部表(管理表)都是默认hive数据仓库路径下库名+表明的存储路径...
  • 我们在人工智能领域研发、开发和应用时,需要有专业性的标准标准化的指标、或评估规范等,在网上查找了一段时间,发现很多资料并不可靠,或简单介绍,让人头大呀;这里整理了一些比较专业的资料,分享给大家。 ...
  • 本次更新放出的Shader为透明系列的3个Shader和标准的镜面高光Shader的两个Shader。由易到难,由入门级到应用级,难度梯度合理。 依然是先放出游戏场景的exe和运行截图。 本期用的模型为妙蛙草。 【可运行...
  • 你将需要标准化相似度这样可以使评价维持在1到5之间,最后一步,统计你想预测用户平均评价的总和。  这里考虑到的问题是一些用户评价所有电影时可能要么给最高分,要么给最低分。这些用户给出评价的相对不同比...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 91,129
精华内容 36,451
关键字:

内容选取标准