Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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
JQuery:如何编写选择器来查找以给定子字符串结尾的类的元素?_Jquery_Selector - Fatal编程技术网

JQuery:如何编写选择器来查找以给定子字符串结尾的类的元素?

JQuery:如何编写选择器来查找以给定子字符串结尾的类的元素?,jquery,selector,Jquery,Selector,我将JQuery用于我的web应用程序。我不知道如何为这种情况编写选择器 <a class="abc def xyz-delete-confirm efg">text</a> <a class="abc def delete-confirm">text</a> 文本 文本 我需要找到所有链接,有一个以“-删除确认”结尾的类或有一个名为“删除确认”的类 我知道如何处理一个名为“delete-confirm”的类的情况。“删除确认情况”如何?我可

我将JQuery用于我的web应用程序。我不知道如何为这种情况编写选择器

<a class="abc def xyz-delete-confirm efg">text</a>

<a class="abc def delete-confirm">text</a>
文本
文本
我需要找到所有链接,有一个以“-删除确认”结尾的类或有一个名为“删除确认”的类

我知道如何处理一个名为“delete-confirm”的类的情况。“删除确认情况”如何?我可以用一个选择器来选择两种情况吗

谢谢你的意见


问候。

您可以这样组合它们

var $allofthem = $('[class$="-delete-confirm"],.delete-confirm');
注意:由于这只是一个属性值,如果类名出现在元素的类列表的末尾并以
结尾,则以选择器结尾,因此仅考虑删除确认

使用带有选择器的端点和类选择器的组合

对于纯选择,您可以这样做(不管它出现在类列表中的什么位置或有多少个类):


您可以这样组合它们

var $allofthem = $('[class$="-delete-confirm"],.delete-confirm');
注意:由于这只是一个属性值,如果类名出现在元素的类列表的末尾并以
结尾,则以选择器结尾,因此仅考虑删除确认

使用带有选择器的端点和类选择器的组合

对于纯选择,您可以这样做(不管它出现在类列表中的什么位置或有多少个类):

类只是另一个属性吗? 这种情况的问题是,将类视为另一个属性,使用属性选择器很少能以一致的方式获得所需的内容

需要注意的一些事项:

  • 如果项目有多个类,它是否有效
  • 如果项目有多个类,并且您要匹配的是属性值中显示的第一个类,那么它是否有效
  • 如果是最后一个呢
  • 如果该项有一个包含您要查找的类名的类,它是否有效?(在您的示例中,可能是
    没有可用的删除确认
还请记住,当您动态添加和删除类时,无法保证在获得
class
属性的值时,类将以何种顺序显示

如果您有一组非常严格的情况,这将在中使用,尤其是当元素只有一个类时,属性选择器可能会起作用。否则,我建议您使用不同的方法

另类 正确的处理方法是使用不同的类-可能有任何进程正在添加
*-delete confirm
类也可以添加另一个类-可能
有delete confirm
或其他什么。然后,您可以在上面进行选择,而不必担心class属性

选择全部,然后选择过滤器() 另一个不理想但比属性选择器更有效的选项是选择所有可能的元素,然后使用回调函数
filter()
返回结果,该函数使用正则表达式查找匹配的类

例如,如果元素都是

类只是另一个属性吗? 这种情况的问题是,将类视为另一个属性,使用属性选择器很少能以一致的方式获得所需的内容

需要注意的一些事项:

  • 如果项目有多个类,它是否有效
  • 如果项目有多个类,并且您要匹配的是属性值中显示的第一个类,那么它是否有效
  • 如果是最后一个呢
  • 如果该项有一个包含您要查找的类名的类,它是否有效?(在您的示例中,可能是
    没有可用的删除确认
还请记住,当您动态添加和删除类时,无法保证在获得
class
属性的值时,类将以何种顺序显示

如果您有一组非常严格的情况,这将在中使用,尤其是当元素只有一个类时,属性选择器可能会起作用。否则,我建议您使用不同的方法

另类 正确的处理方法是使用不同的类-可能有任何进程正在添加
*-delete confirm
类也可以添加另一个类-可能
有delete confirm
或其他什么。然后,您可以在上面进行选择,而不必担心class属性

选择全部,然后选择过滤器() 另一个不理想但比属性选择器更有效的选项是选择所有可能的元素,然后使用回调函数
filter()
返回结果,该函数使用正则表达式查找匹配的类

例如,如果元素都是


PSL,非常感谢!!!这种类选择器的组合对我来说是新的。非常整洁。@jcsanyi您是对的,只需要在末尾添加一个,以确保它以该结尾或为下一个结尾留出空间。PSL,非常感谢!!!这种类选择器的组合对我来说是新的。非常整洁。@jcsanyi你是对的,只需要在结尾处放一个,以确保结尾处有一个或下一个的空间。jcsanyi,谢谢你的想法。非常有用。我会严格和一贯地使用“-删除确认”或“删除确认”为那些需要在删除前确认的链接。感谢您提及过滤器方法@听起来这可能对你有用。我想确保我在这里也得到了警告,这样其他看到这个问题的人就不会试图在更一般的情况下使用它。jcsanyi,谢谢你的想法。非常有用。我会严格和一贯地使用“-删除确认”或“删除确认”为那些需要在删除一些链接之前确认
$('#links a').filter(function () {
    return /(^|\s|-)delete-confirm(\s|$)/.test($(this).attr('class'));
});