动态类:它们是前置还是附加?

时间:2014-02-10 16:04:50

标签: javascript jquery jquery-ui jquery-plugins

我的问题非常普遍: 将动态类添加到元素时(例如通过任何jQuery-ui的附加组件), 并且已经有关于该元素的类,是动态添加的类是附加还是预先添加到类列表中的?

为什么问题基于以下内容: 我试图用一个以标识符(例如title_)开头的dymanic类来选择所有元素,所以我只写$('[class ^ title _]')。

我担心的是另一个开发人员可能会出现并向该元素添加$ .datepicker(例如),从而为该元素添加另一个类/ es,如果这些类被添加到元素前面 - there goes my selector

提前致谢

这是我的情况:显示coldfusion cfloop创建复选框:

    <cfset lbls = {"test1" = "Test one","test2" = "Test two","test3" = "Test three","test4" = "Test four","test5" = "Test five"}>
    <cfloop collection=#lbls# item="num">
      <cfoutput>
        <tr>
          <td><label>#lbls['#num#']#</label>
          <td><input type="checkbox" class="form_test test_#num#" value="#num#" name="test_yes" ></td>
          <td><input type="checkbox" class="form_test test_#num#" value="#num#" name="test_no" ></td>
        </tr>
     </cfoutput>
   </cfloop>

我将动态创建5个类别的动态复选框(是或否)(循环遍历coldfusion列表以创建它们)[它们不是允许用户取消选中所有的单选框]。那么我如何引用“其他”复选框? 我不能使用兄弟姐妹(),因为他们是独立的td。我可以去父母那里选择父母('th')。孩子(':复选框')。不是(这个)但是我希望有一个更短的方式。

1 个答案:

答案 0 :(得分:2)

他们是附加的,但你不应该依赖它。

更好的解决方法是附加通用标识类和更具体的类:

<elem class="title title_foo"> ... </elem>

然后使用最小类选择器选择前者,如果你想要所有这些元素:

$('.title')

与使用属性匹配选择器相比,方式更高效,更可靠。