刚开始使用javascript / jquery
我有以下形式(生成,因此无法控制输出) 并且如果标签包含< em> *< / em>
,则需要使其成为必需品<div class="product-configure-options-option">
<label for="product_configure_option_112843">Aantal verpakkingen links: <em>*</em></label>
<select name="option[112843]" id="product_configure_option_112843">
<option value="467619" selected="selected">Geen</option>
<option value="467631">1</option>
<option value="467623">5</option>
</select>
<div class="product-configure-clear"></div>
</div>
我尝试过以下代码。 因此,如果div包含一个包含em的标签,请找到最接近的select并添加所需的属性。
$( "product-configure-options-option label" ).has( "em" )(function() {
$(this).find('select').prop('required',true);
});
我做错了什么?
答案 0 :(得分:1)
.
。.find()
正在寻找其他元素中的元素,使用
而是.next()
。
var labelsWithEm = $(".product-configure-options-option label").has("em"); // find all relevant items
labelsWithEm.each(function() { // iterate the items
$(this).next('select').prop('required', true); // find the next sibling that is select, and add the prop
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="product-configure-options-option">
<label for="product_configure_option_112843">Aantal verpakkingen links: <em>*</em>
</label>
<select name="option[112843]" id="product_configure_option_112843">
<option value="467619" selected="selected">Geen</option>
<option value="467631">1</option>
<option value="467623">5</option>
</select>
<div class="product-configure-clear"></div>
</div>
&#13;
答案 1 :(得分:0)
您的代码存在两个问题:
$( "product-configure-options-option ...
查找名为“product-configure-options-option”的标记的元素。您想要一个具有类的元素,您可以通过预先设置一个句点来获得:$( ".product-configure-options-option ...
$(this).find('select')
查找标签的子的SELECT元素。你想要它的兄弟,你可以用$(this).next('select')
获得它。