Jquery如果元素的类以x开头,那么不要addClass

前端之家收集整理的这篇文章主要介绍了Jquery如果元素的类以x开头,那么不要addClass前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是一个明确的新手,所以道歉为垃圾编码!
我写了以下Jquery为我自己做的一个练习项目:

当您点击div时,它会添加类“in_answerBox1”,并在已添加类“answerBox_letter1”的回答框中创建一个克隆的div.

最终,网格(或表格中的单元格)中会有许多div,当您点击特定的div时,它会淡出,似乎出现在answerBox中.然后,当您点击回答框中的内容时,网格中的相关div将重新出现,克隆将从该答案框中删除.

但是,如果我点击的东西还没有在答案框中,我现在只需要添加类:即如果原始或克隆中有一个包含“answerBox”的类.

我写了以下知道它不会工作,但它可能会解释我想要更好.

var n = 0;

$('#Box').click(function(){

    if(!$(this).hasClass('*[class^="answerBox"]')) {

    $(this).addClass('in_answerBox' + (n+ 1) );

    $(this).clone().appendTo('#answerBox').addClass('answerBox_letter' + (n + 1));
    n = (n + 1);

}


});

有什么建议么?

解决方法

我认为事情是在如果条件:
if(!$(this).hasClass('[class^="answerBox"]')) {

尝试这个 :

if(!$(this).is('[class*="answerBox"]')) {
    //Finds element with no answerBox class
} else {
    //The element has already an answerBox class
}

你应该看看toggleClassis jquery文档.

见这live fiddle example.

提示:而不是n =(n 1)你可以做n :).

编辑:

再次阅读这个问题后,我做了一个full working script

假设Html是:

<div id="Box">
    <p>Answer1</p>
    <p>Answer2</p>
    <p>Answer3</p>
</div>

<div id="answerBox">

</div>

jQuery:

var n = 0;

$('#Box p').on('click',function(e) {
    e.preventDefault();
    if(!$(this).is('[class*="answerBox"]')) {
        n++;
        $(this).addClass('in_answerBox' + n );
        $(this).clone().appendTo('#answerBox').addClass('answerBox_letter' + n); 
    }
});

example here.

你应该考虑使用data-attributes,他们将更加可靠,然后上课你想做什么.

请注意,如果您希望选择器仅在类属性以单词开头时才匹配,则需要[class ^ =“word”]. *然而搜索整个类的属性.
注意,[class ^ =“word”]将不匹配< div class =“test word”> see here.

原文链接:https://www.f2er.com/jquery/180361.html

猜你在找的jQuery相关文章