jquery按钮事件函数按ID来定位按钮

时间:2013-09-03 15:40:43

标签: jquery function events siblings

我有一个包含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 个答案:

答案 0 :(得分:2)

.指的是一个类#到id。

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

使用

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

因为purchase1,purchase2,purchase3是ids。

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

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

你也可以给他们一个共同的课程,“购买”。

然后使用,

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

但请记住,id是独一无二的。