代码之家  ›  专栏  ›  技术社区  ›  Starfish777

jquery按钮事件函数按ID指向目标按钮

  •  1
  • Starfish777  · 技术社区  · 11 年前

    我有一个充满div的页面,每个div包含1个按钮,它们提交以成功完成某个功能。

    然而,我目前正试图通过一个ID来隔离按钮,并触发向div中的2个位置添加一个类和消息(输入值&#msgsC)。

    然而,该事件根本没有触发。我想我可能错过了什么。如何将类和消息仅更改/添加到被单击的特定按钮的同级输入标记和#msgsC(而不是同时添加到页面上所有div中的所有输入)?

    <form id="Hello" target="somePlace" action="#" method="post">
        <table>
            <tr>
                <td>
                    <select name="os0">
                        <option value="item1">item1</option>
                        <option value="item2">item2</option>
                        <option value="item3">item3</option>
                        <option value="item1">item4</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="hidden" name="on1" value="Send My URL"/>Send My URL
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" value="http://" name="os1" id="os1" maxlength="200"/>
                </td>
            </tr>
        </table>
        <button alt="Click the button" id="purchase1" name="submit" class="btn" type="image">Add To Cart</button>
    </form>
    
    
    
    
    $(document).ready(function () {
        $('#purchase1, #purchase2, #purchase3').on('click', 'button', function (e) {
            var urlGo = new Array(url1, url2, url3);
    
            for (var x = 0; x < urlGo.length; x++) {
    
                if (!/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(urlGo[x].val())) {
                    $(this).siblings("input[type=text]").addClass("errorAlert");
                    $(this).siblings("input[type=text]").val(emptyerror);
                    $(this).siblings("#msgsC").addClass("text-error");
                    $(this).siblings("#msgsC").html(htmlEmpty);
    
                } //end of if
            } //end of for
        }); // end of purchase button function
    }); // end document ready
    
    1 回复  |  直到 11 年前
        1
  •  2
  •   Optimus Prime    11 年前

    . 指的是一个类, # 到一个id。

    .purchase 选择类别购买的元素, #purchase 选择id购买的元素。

    使用

    $('#purchase1, #purchase2, #purchase3').on(...
    

    因为purchase1、purchase2、purchase3是id。

    如果你只对点击感兴趣,并且这些元素只加载一次,而没有被替换或删除,你也可以使用,

    $('#purchase1, #purchase2, #purchase3').click(function(){..
    

    你也可以给他们一个普通的类别,“购买”。

    然后使用,

    $('.purchase').click(function(){  ....});
    

    但请记住,身份证是独一无二的。