如何使用Jquery $(this)更新不同div标签内的HTML。选择

时间:2015-08-07 19:11:13

标签: jquery this

如果我有这样的表格:

<form id="form-04">
        <div name="form-status"></div>
        <input name="FromEmail" placeholder="Your Email Address" type="text">
        <input name="ToEmail" placeholder="Your Friends Email Address" type="text">
        <textarea name="Message" placeholder="Your Message, 512 characters max." rows="5"></textarea>
        <button style="float: right;" type="submit">Submit</button>
    </form>

如果我打电话给$(这个)。像这样:

    $('#form-01, #form-02, #form-03, #form-04').each(function() {
    $(this).validate({
        ..... bla bla bla
    });
});

如何使用名称&#39; form-status&#39 ;?引用div?我试过这个,但我不知所措?

$("div:first", this).html("HTML txt goes here.");

我应该使用alt属性吗?

PS:我知道如果我只在div标签中使用id,这将很容易,但我没有这个选项。

2 个答案:

答案 0 :(得分:2)

使用find()

$(this).find('[name="form-status"]').html('HTML txt goes here.');

答案 1 :(得分:0)

所以我打算留下一篇详细说明所有内容的评论,但你应该使用的课程不是ids ...所有的东西......

您的#form1#form2#form3 .... #form1000232212100001003应该都是class="target-form"的类别或您认为的名称的某些变体足够描述。

您的代码可以随心所欲地完成您的工作。

$('.target-form').each(function() {
    var form = $(this);
    form.find('[name="form-status"]').html('Yep that worked.');
    form.validate({
        // ..... bla bla bla
    });
});

只是为了保持这种趋势......尽管名称是许多事物的有效属性,但它并不是正确的做事方式。我更喜欢最佳实践。再次使用类...只需将name更改为class即可。只对divpspanetc...进行此更改。input s很好。