我正在尝试初始化html中隐藏输入中的值。所以我为要初始化的输入添加了属性。如何选择这些对象?
<input type="hidden" class="hidden" name="a" value="" init />
<input type="hidden" class="hidden" name="b" value="" />
$("input:hidden[init]").val(""); // this is not working, but you might know what I want.
[ADD]
我在Internet Explorer 中使用1.4 jquery
因为init
是属性,所以要选择具有该属性的元素,您需要将其放在:hidden
jQuery psuedo类之前,而不是放在:之后
$("input[init]:hidden").val("foo");
console.log(
$("input[init]:hidden").val()
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="hidden" class="hidden" name="a" value="" init />
<input type="hidden" class="hidden" name="b" value="" />
也就是说,当您想向HTML添加自定义信息时,最好使用data-
属性,而不是随机的非标准属性:
$("input[data-init]:hidden").val("foo");
console.log(
$("input[data-init]:hidden").val()
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="hidden" class="hidden" name="a" value="" data-init />
<input type="hidden" class="hidden" name="b" value="" data-init/>
对于jQuery的旧版本,:hidden
可能无法按预期工作——请使用标准选择器字符串:
input[data-init][type='hidden']
$("input[data-init][type='hidden']").val("foo");
console.log(
$("input[data-init][type='hidden']").val()
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<input type="hidden" class="hidden" name="a" value="" data-init />
<input type="hidden" class="hidden" name="b" value="" data-init/>
使用此$("input[type='hidden'][init]");
console.log("control found with init attribute : " + $("input[type='hidden'][init]").length);
console.log("control found without init attribute : " + $("input[type='hidden']:not([init])").length);
console.log("All Hiddens : " + $("input[type='hidden']").length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<input type="hidden" class="hidden" name="a" value="" init />
<input type="hidden" class="hidden" name="b" value="" />
我自己回答。
我写这个代码。
<input type="hidden" class="hidden" name="a" value="" init />
<input type="hidden" class="hidden" name="b" value="" />
我检查了IE,这个像一样转换
<input type="hidden" class="hidden" name="a" value="" init="" />
<input type="hidden" class="hidden" name="b" value="" />
所以,我确实喜欢这个。
$("input:hidden[init=]").val("");
这起到了作用。