javascript - ExtJs 6.0 - Ext.dom.Element.query() - 属性中的多个值 - 正确的选择器

标签 javascript html css extjs css-selectors

我的 Sencha fiddle看起来像这样:

Ext.application({
name : 'Fiddle',

launch : function() {
   var my_panel = Ext.create('Ext.panel.Panel', {
        html: "<img id='1' foo='4 6 8' src='http://i342.photobucket.com/albums/o416/TaySensei/avatar_me_in_anime_1_by_maria345.jpg'/>" + 
              "<img id='2' foo='5 7 9 10' src='http://i621.photobucket.com/albums/tt296/Kruh11/KruhPic50x50LQ.jpg'/>" +
              "<img id='3' foo='6 4' src='http://i744.photobucket.com/albums/xx84/no_photos_here/communitytile-1.jpg'/>"
    });
    var my_viewport =  Ext.create("Ext.container.Viewport",{
        layout: 'fit',
        items: [my_panel],
        renderTo : Ext.getBody()
    });
    var queried_imgs = my_panel.body.query("img[foo='4']");


    Ext.toast('queried_imgs = ' + queried_imgs);
  }
});

我的问题是:
在第 15 行,我尝试使用 Ext.dom.Element.query(selector) 方法来查询包含值 4img 标签> 在它们的 foo 属性中。

然而 queried_imgs 是空的。


检索 foo 属性中包含 4img 标签的正确 CSS 选择器是什么?

最佳答案

以下是各种属性选择器,它们根据属性和值选择元素。您可以使用最适合您的情况。您可以在 W3C Selectors Spec 中找到有关各种可用 CSS 属性选择器的更多详细信息。 .

img 标签的 CSS 选择器,它有一个 foo 属性,其值包含 4 - img[foo*='4']

img[foo*='4']{
  border: 5px solid red;
}
<img src='http://lorempixel.com/100/100/nature/4' foo='4 5' /> <!-- will select this -->
<img src='http://lorempixel.com/100/100/nature/4' foo='41' />  <!-- and this -->
<img src='http://lorempixel.com/100/100/nature/4' foo='14' />  <!-- and this -->
<img src='http://lorempixel.com/100/100/nature/4' foo='4' />   <!-- and this -->

注意:我相信您只是在寻找上述选择器。


img 标签的 CSS 选择器,它有一个 foo 属性,其值以 4 开头 - img[foo^='4']

img[foo^='4']{
  border: 5px solid red;
}
<img src='http://lorempixel.com/100/100/nature/4' foo='4 5' /> <!-- will select only this -->
<img src='http://lorempixel.com/100/100/nature/4' foo='41' />  <!-- and this -->
<img src='http://lorempixel.com/100/100/nature/4' foo='14' />
<img src='http://lorempixel.com/100/100/nature/4' foo='4' />   <!-- and this -->

img 标签的 CSS 选择器,它有一个 foo 属性,其值正好是 4 - img[foo='4']

img[foo='4']{
  border: 5px solid red;
}
<img src='http://lorempixel.com/100/100/nature/4' foo='4 5' />
<img src='http://lorempixel.com/100/100/nature/4' foo='41' />
<img src='http://lorempixel.com/100/100/nature/4' foo='14' />
<img src='http://lorempixel.com/100/100/nature/4' foo='4' />   <!-- will select only this -->


img 标签的 CSS 选择器,它有一个 foo 属性,它有一个空格分隔值列表,其中一个正好是 4 - img[foo~= '4']

img[foo~='4']{
  border: 5px solid red;
}
<img src='http://lorempixel.com/100/100/nature/4' foo='4 5' />   <!-- this will select this -->
<img src='http://lorempixel.com/100/100/nature/4' foo='41 21' />
<img src='http://lorempixel.com/100/100/nature/4' foo='14 34' />
<img src='http://lorempixel.com/100/100/nature/4' foo='4' />     <!-- and this -->
<img src='http://lorempixel.com/100/100/nature/4' foo='159 4' /> <!-- and this -->

注意:~= 选择器会选择代码中的元素 #1#3。但它并不是完全选择一个 foo 属性包含 4 的元素。

关于javascript - ExtJs 6.0 - Ext.dom.Element.query() - 属性中的多个值 - 正确的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34676170/

相关文章:

javascript - 为什么下面的代码是异步执行的

javascript - 显示和隐藏 div 用于缩短动态出现的文本

javascript - 如何将缺失的对象添加到数组中?

javascript - Jquery .click 仅在条件下触发

javascript - 识别没有id的div

android - 响应式 Bootstrap 问题

c# - css 在服务器 iis 7 中不能正常工作,就像在本地一样

javascript - 特殊 ucwords 的正则表达式

html - 日本特殊字符的不同网页字体

javascript - 调整窗口大小/最大化窗口时背景/内容下半部分消失