Javascript,Jquery:通过两个attr来获取元素?

时间:2018-12-13 11:14:27

标签: javascript jquery

HTML:

<form id="form_filter" action="{{ Request::fullUrl() }}" method="post">
<input type="checkbox" name="shape[]" value="Aviator">
<input type="checkbox" name="shape[]" value="Round">
<input type="checkbox" name="shape[]" value="Oval">
</form>

我需要通过[名称]和[值]获取元素:

$('#form_filter input[name=shape][value=Round]').prop('checked', true);

请帮助!

2 个答案:

答案 0 :(得分:3)

您错过了名称值中的[],应该为name="shape[]"

$('#form_filter input[name="shape[]"][value=Round]').prop('checked', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="form_filter" action="{{ Request::fullUrl() }}" method="post">
<input type="checkbox" name="shape[]" value="Aviator">
<input type="checkbox" name="shape[]" value="Round">
<input type="checkbox" name="shape[]" value="Oval">
</form>

答案 1 :(得分:0)

您应该只在选择器内使用引号,即:

$('#form_filter input[name="shape[]"][value="Round"]').length === 1 // true

或者:

$('#form_filter input[name="shape[]"][value="Round"]').prop('checked', true); // checks your specific checkbox

jQuery docs on equals selector还应说明以下内容:

  

属性:属性名称。

     

value:属性值。可以是有效的标识符,也可以是   带引号的字符串


JSFiddle上进行测试。