1
<div class="row">
    <label for="txtTitle">Title</label>
    <div class="holder">
        <div class="text-holder"> <span class="ico-error"></span><span class="text"> <input id="txtTitle"
     runat="server" type="text" value="" /></span>  <span class="t-l">
     </span><span class="b-l"></span><span class="t-r"></span><span class="b-r"></span> 
        </div>
    </div>
</div>

私は次のhtmlを持っています。入力ボックスでJqueryの検証を行うことを計画しています。これが無効な場合は、エラークラスをdivに追加します

        var isValid = true;
        var errorMessage = '';
        if ($('#<%=txtTitle.ClientID %>').val() == '') {
            $('#<%=txtTitle.ClientID %>').parent().parent().parent(".row").addClass("error");
            isValid = false;
            errorMessage += "Firstname is required\n";
        }
        return isValid;

親をターゲットにしようとしましたが、このdivが親の階層のさらに上にあることがわかります。そのため、より多くの親タグを使用してheirachyを選択しようとしましたが、divをターゲットにする正しい方法を理解することから、コースからかなり外れていると思います。

4

2 に答える 2

0

私は使用することをお勧めし.closest()ます:

説明:セット内の各要素について、要素自体をテストし、DOMツリーでその祖先をトラバースすることにより、セレクターに一致する最初の要素を取得します。

var isValid = true;
var errorMessage = '';
var $this = $('#<%=txtTitle.ClientID %>');

if ($this.val() == '') {
    $this.closest(".row").addClass("error");
    isValid = false;
    errorMessage += "Firstname is required\n";
}
return isValid;
于 2013-01-16T16:46:02.847 に答える
-1

ツリーを検索する必要がある場合は、.parents()メソッドを使用して、それを含むdivのクラスを渡します。.parents('.row')

于 2013-01-16T16:49:01.223 に答える