如何在旧版本的Jquery中选择父级

时间:2012-02-24 20:07:09

标签: jquery

我在这里找到一个函数,找到父(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

3 个答案:

答案 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的有效元素,为什么不在创建它时绑定到该元素?