为什么php表单输入数组在jQuery中表现得很好?
有没有办法克服这个问题?
嗨,我写了这段代码,它有效.. 更新21种无线电输入的形式,以强调选中的收音机旁边的标签。
*视觉上* - 不像在html标签中那样$(function()
{
for(count = 0;count<21;count++)
{
result = $("input:radio[name=choice"+count+"]:checked").val();
$("input[name=\"choice"+count+"\"][ value=\""+ result +"\"]").attr("class", "magic");
$("div.radio:has(input.magic)").attr("class", "radio spell");
}
$("input").click(function()
{
$("div.radio:has(input.magic)").attr("class", "radio");
$("input.magic").removeAttr("class", "magic");
var count = 0;
var result = 0;
for(count = 0;count<21;count++)
{
result = $("input:radio[name=choice"+count+"]:checked").val();
$("input[name=\"choice"+count+"\"][ value=\""+ result +"\"]").attr("class", "magic");
$("div.radio:has(input.magic)").attr("class", "radio spell");
}
});
});
这是css
input[type="radio"] {
height: 20px;
}
input[type="radio"] + label {
color: #777;
font-weight:100;
letter-spacing: 1px;
}
input[type="radio"].magic + label {
color: black;
font-style: italic;
/*text-decoration:underline;*/
font-weight: 600;
letter-spacing: 0px;
text-align: center;
display:inline-block;
width: 80px;
}
div.radio.spell {
border: outset white 2px;
}
现在使用的无线电名称是choice0 - choice20 它运作正常。
在此之前我使用了选择[0] - 选择[20] 它根本不起作用。 它表现得非常奇怪。
jQuery代码类似于: result = $(“input:radio [name = choice [”+ count +“]]:checked”)。val(); ...
我很想知道,到底有没有?
感谢您提供宝贵的意见。
答案 0 :(得分:3)
[
和]
用于jQuery中的属性选择器,您需要将它们转义为将它们用作字符串的一部分:$(":radio[name=choice\["+count+"\]]")
。
也就是说,这是操纵元素组的一种相当不舒服的方式。简单的方法是创建一个反映这些组的HTML结构,并使用它来查找组的其他成员:
$(function() {
$(":radio[name^=choice]:checked").each(function() {
$(this).closest('div.radio').attr("class", "radio spell")
.find("input[name^=choice]").attr("class", "magic");
});
});
等