javascript - 从 jquery 数据属性值进行查询

标签 javascript jquery

我可以得到很好的结果,但每个数据值结果都是用逗号分隔的,因为它是一个数组。我想在没有任何逗号的情况下进行查询,并可能删除最后一个 AND。

这可能吗?

jQuery

//Submit Adv Search
    $('#submitAdvSearch').click(function(){
        var query = "SELECT * FROM table WHERE ";
        var yo = $('.subCat span[data-value].checked').map(function(){
            return $(this).attr('data-value')+'=1 AND ';
        }).get();

        console.log(query+' '+yo);
    });

HTML

<div class="cat">
    <div class="catTitle">
        <h2>Performance</h2>
        <span class="arrow"></span>
        <br class="clear"/>
    </div>
    <div class="subCat" data-cat="performance">
        <div>

                <span data-all="all">&#9675;&nbsp;Tous</span><br>
            <div class="after">
                <span data-value="30000_doublefrotements" class="checked">&#9675;&nbsp;+30,000 double frottement</span><br>
                <span data-value="atcc96_lavablecommercial">&#9675;&nbsp;ATTCC 96</span><br>
                <span data-value="nfpa701_inifuge">&#9675;&nbsp;NFPA 701</span><br>
                <span data-value="resistanrayonsuv">&#9675;&nbsp;Uv résistant</span>
            </div>
        </div>
    </div>
</div>

<div class="cat">
    <div class="catTitle">
        <h2>Style</h2>
        <span class="arrow"></span>
        <br class="clear"/>
    </div>
    <div class="subCat" data-cat="style">
        <div>

                <span data-all="all">&#9675;&nbsp;Tous</span><br>
            <div class="after">
                <span data-value="contemporain" class="checked">&#9675;&nbsp;Contemporain</span><br>
                <span data-value="traditionnel">&#9675;&nbsp;Traditionel</span><br>
                <span data-value="transitionnel" class="checked">&#9675;&nbsp;Transitionel</span>
            </div>
        </div>
    </div>
</div>
<div id="submitAdvSearch">Submit</div>

结果

SELECT * FROM table WHERE  30000_doublefrotements=1 AND ,contemporain=1 AND ,transitionnel=1 AND 

最佳答案

使用 join("AND ") 连接每个条件之间的 AND:

var yo = $('.subCat span[data-value].checked').map(function() {
  return $(this).attr('data-value')+'=1';
}).get();
console.log(query + yo.join(" AND "));

This会给你:

SELECT * FROM table WHERE 30000_doublefrotements=1 AND contemporain=1 AND transitionnel=1

关于javascript - 从 jquery 数据属性值进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166422/

相关文章:

javascript - jQuery - 检测两个 html `<span>` 何时包含相同的值

javascript - 如何在 UIWebView 中更改用户的选择范围?

javascript - 如何实现容器类的延迟加载?

javascript - Angular ngStyle 解析器错误 : Unexpected token [, 需要标识符或关键字

javascript - jQuery 的 AJAX 请求不起作用

javascript - 使用 JavaScript 验证复选框选中的属性是否不为空

javascript - 创建 Android 构建时找不到 React Native Webrtc 的模块

javascript - 使用单击 jquery 事件进行 css3 转换?

javascript - 在 JavaScript 对象中创建对象

php - 使用 jQuery ajax 显示输出后,使用 PHP post 方法该值不会传递