如何选择包含带有属性占位符的输入,该属性占位符位于命名div内

时间:2013-11-26 23:15:30

标签: jquery

这可能非常简单,但我并不熟悉jQuery选择器。

这是带有内联css的HTML:

<div id="login" style="position:relative; display:none; top:0px; left:0px; right:0px; bottom:0px; text-align:center; vertical-align:middle; z-index:10;" class="trwhole">
    <table width="100%" height="100%">
        <tr width="100%" height="100%">
            <td width="100%" height="100%" style="vertical-align:middle; text-align:center;">
                <img src="images/MemorizeItWhite.png" z-index="10000" style="width:290px;">
                <table align="center" class="w290">
                    <tr>
                        <td>
                            <div id="lerror" class="alert"></div>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">Username:
                            <br>
                            <input autocorrect="off" autocapitalize="off" type="text" placeholder="username" id="username" style="" class="ui-corner-all w290">
                        </td>
                    </tr>
                    <tr>
                        <td align="left">Password:
                            <br>
                            <input type="password" placeholder="password" id="password" style="" class="ui-corner-all w290" onkeypress="if (event.keyCode==13){login();}">
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <input type="button" id="loginBt" onclick="login();" value="Log In" class="submit" style="width:85px;">
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</div>

我正在寻找像

这样的东西
$("select tr that contains input[placeholder] in #login or #signup2")
    .on("touchstart", function () { $("this > input").focus(); });

关键是要给每个ontouchstart属性更改焦点到其中的输入,如果该输入具有占位符并且位于任一命名div中。

我当然可以手动将ontouchstart属性添加到每个tr中,但是我不会学到任何新内容,而且我认为可以使用更少的jQuery代码来完成。

1 个答案:

答案 0 :(得分:1)

根据您的评论问题,请尝试:

$('#login tr:has(input[placeholder]), #signup2 tr:has(input[placeholder])')
   .on("touchstart", function (evt) { $(evt.target).filter("input").focus(); });