为啥 jQuery 不选择所有属性元素?

Posted

技术标签:

【中文标题】为啥 jQuery 不选择所有属性元素?【英文标题】:Why is jQuery not selecting all attribute elements?为什么 jQuery 不选择所有属性元素? 【发布时间】:2015-05-28 14:15:47 【问题描述】:

我正在网站上制作标签,并设置了 jQuery 以在单击任何属性时运行功能(这只是为了测试选择器,并非所有属性都会在最终网站中使用)。进入某个 div 后,不会选择任何属性。 这是html

<div id="content" class="content">
     <div id="image" style="border:2px solid;float:left">...</div>
     <div id="backgroundInfo" style="margin-left: 5px;float:left">...</div>
     <br>
     <div id="medBackground" style="margin-left: 5px">...</div>
     <div id="tabs" class="tabs">
         <a> Clowns</a>
         <ul class="tab-links">
              <li class="active"><a href="#tab1">03/05/2001</a></li>
              <li><a href="#tab2">06/05/2007</a></li>
         </ul>
         <div class="tab-content">...</div>
     </div>
</div>

列表是使用 while 循环生成的。除了 div(class= tabs) 中的属性外,所有属性都被选中。 这是 jQuery:

jQuery(document).ready(function() 
    jQuery('a').on('click', function(e)  
        var currentAttrValue = jQuery(this).attr('href');

        // Show/Hide Tabs
        jQuery('.tabs ' + currentAttrValue).show().siblings().hide();

        // Change/remove current tab to active
                jQuery(this).parent('li').addClass('active').siblings().removeClass('active');

        e.preventDefault();
    );
);

此代码来自:http://inspirationalpixels.com/tutorials/creating-tabs-with-html-css-and-jquery#step-jquery 如果有人可以帮助我弄清楚出了什么问题,那就太棒了。我让它以简化的形式工作,但不在我的主网站上。

【问题讨论】:

jsfiddle.net/arunpjohny/w788e8t4/1 - 有什么问题 jsfiddle.net/arunpjohny/w788e8t4/2 您的主要网站上发生了什么?它什么都不做吗?如果您使用 firebug 或 Chrome 开发人员工具单步执行脚本以查看脚本停止的位置(如果停止,否则您可能会遇到选择问题),这可能是最好的选择。 如果您可以编辑上述小提琴以重现您的问题,我们也许可以帮助您 我使用了开发人员工具,但 div(class= tabs) 中的属性没有收到事件。所有其他属性都在开发者工具上附加了一个事件。 【参考方案1】:

我认为您对动态生成的列表使用了错误的 .on() 方法, 试试

jQuery(document).on('click', 'a', function(e)
    //your code
);

代替

 jQuery('a').on('click', function(e)  
     //your code
 );

【讨论】:

我试过了,没有选择任何属性。 是的,这行得通!太感谢了!我在想它与动态生成的列表有关。

以上是关于为啥 jQuery 不选择所有属性元素?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 属性选择器

jQuery 属性选择器

jquery——通过name属性查找元素

用jquery创建的元素属性为啥大写都变小写了

JQuery中常用的选择器

jQuery根据name属性进行选择