如何在jquery中存在具有自定义属性的多个条件的情况下选择对象?

时间:2018-10-30 02:57:36

标签: jquery

我正在尝试在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

3 个答案:

答案 0 :(得分:0)

由于init是一个属性,要选择具有该属性的元素,您可以将其放在之前 jQuery psuedo-上课,不是之后:

:hidden
$("input[init]:hidden").val("foo");
console.log(
  $("input[init]:hidden").val()
);

也就是说,当您要将自定义信息添加到HTML时,最好使用<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="" />属性,而不是随机的非标准属性:

data-
$("input[data-init]:hidden").val("foo");
console.log(
  $("input[data-init]:hidden").val()
);

对于旧版本的jQuery,<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/>可能无法正常工作-请改用标准选择器字符串:

:hidden

input[data-init][type='hidden']
$("input[data-init][type='hidden']").val("foo");
console.log(
  $("input[data-init][type='hidden']").val()
);

答案 1 :(得分:0)

使用此$("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="" />

答案 2 :(得分:0)

我回答自己。

我写这段代码。

<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("");

这行得通。