我在这里找到一个函数,找到父(li)的兄弟(answerfields)然后计算子输入。
$('#addAnswer').live('click', function(){
var selected = $(this).parents('li').siblings('#answerFields').children('input').length;
document.getElementById('legend').innerHTML = selected;
});
如何使用Jquery 1.5.2缩短它?
我有一份工作JSFiddle。
答案 0 :(得分:0)
似乎适合“缩短”的唯一陈述是 document.getElementById('legend')。innerHTML = selected;
你可以用jQuery编写
$('legend').html(selected);
请注意,版本1.7中已弃用“live”。
答案 1 :(得分:0)
ID必须是唯一的,因此如果有一个#answerFields元素,您可以直接使用
$("#answerFields input").length
而不是
$(this).parents('li').siblings('#answerFields').children('input').length;
答案 2 :(得分:0)
这里有太多错误,我不知道从哪里开始。
ID必须是唯一的,并且根据代码的外观,您的页面会有重复的ID。
.parents("li")
应为.closest("li")
,除非您确实要选择li
元素的所有祖先元素,而不是仅选择最接近的元素。
要使此代码更多正确而不要求您使ID唯一,您可以使用此:
$(this).closest("li").siblings('[id="answerFields"]').children('input').length;
尽管它变得更小,但它的大小一样小。
在带有ID的元素上使用.live()
似乎也很奇怪。只有一个包含该id的有效元素,为什么不在创建它时绑定到该元素?