jquery找到孩子选择器的表现

时间:2011-02-12 20:44:20

标签: jquery find children

有没有更好的方法来写这个。我正在检查textarea的输入并尝试查找它是否包含object或iframe标签,如果没有则设置var x = 1

if ($textareaval.find('iframe').length > 0) {
    alert('iframe')
} else if ($textareaval.find('param').length > 0) {
    alert('object')
} else {
    var x = 1;
    alert(x)

3 个答案:

答案 0 :(得分:1)

我认为即使你不需要检查长度> Ø.. 这样做..

if ($textareaval.has('iframe, param').length) {
   alert('iframe, param')
}else{var x=1;}

答案 1 :(得分:1)

观察您只会发出一个警报,因此假设您只会遇到一种类型,我建议如下:

    var foundItems = $textareaval.has('iframe, param');
    var alertVal = 1;
    if(foundItems.length){
       alertVal = "object";
       if(foundItems[0].tagName == "iframe")
          alertVal = "iframe";
    }
    alert(alertVal);

这具有仅利用所测试的两个对象的最常见属性的一个遍历和最小短路逻辑的优点。而且,它是可读的。

注意:foundItems.length测试不测试是否存在,因为此属性将始终存在于javascript集合中;但是,如果它的计算结果为0,那就是假 - 而任何其他数字都不是。

答案 2 :(得分:0)

如果您不关心它有哪一个,您可以将两个检查合并为一个:

if ($textareaval.has('iframe, param').length > 0) {
    x = 1;
}

编辑:你说你确实在乎,所以没有。您的代码很好,无需改进。