我正在使用jQuery执行我的第一步,需要帮助为我的问题选择合适的选择器。我在Django模板中有以下HTML:
{% for field in form %}
<div class="control-group">
<label class="control-label" for="{{ field.label }}">{{ field.label }}</label>
<div class="controls">
{% if field.html_name == "field_1" %}
<input class="input-xlarge" id="{{ field.label }}" type="text" name="{{ field.html_name }}" />
{% elif field.html_name == "field_2" %}
<input class="input-mini" id="{{ field.label }}" type="text" name="{{ field.html_name }}" />
{% endif %}
</div>
</div>
{% endfor %}
我需要对<input />
字段执行某些操作,我有以下选择器:
var $inputField1 = $('input[name="field_1"]');
var $inputField2 = $('input[name="field_2"]');
我现在的问题是,我需要为特定的<div class="control-group"></div>
字段选择<input />
才能更改此<div>
的类。我怎么做?我需要parent selector吗?我有点困惑。请帮忙。非常感谢你!
答案 0 :(得分:8)
只有选择器才能做到这一点。您需要像现在一样选择输入元素,然后使用.closest()
method获取祖先div
:
var controlGroup = $('input[name="field_1"]').closest('.control-group');
答案 1 :(得分:3)
您可以使用.closest():
var $inputField1 = $('input[name="field_1"]');
var $targetDiv = $inputField1.closest('.control-group');
或使用parent():
var $inputField1 = $('input[name="field_1"]');
var $targetDiv = $inputField1.parents('.control-group:eq(0)');
.closest()更好,因为它不会遍历所有DOM
答案 2 :(得分:2)
答案 3 :(得分:0)
你可以使用
$('input[name="field_1"]').parents('.control-group:first')