如果使用if语句将包装集大小设置为0,jQuery或javascript中是否有一种方法可以忽略所有操作。
menu.find('a[href="#add"]'). {code that should execute only if size()>0};
我猜我通常不得不做这样的事情
var m = menu.find('a[href="#add"]');
if m.size()>0 { do something }
有没有更短的方法呢?
编辑:完整代码
menu.find('a[href="#add"]').attr("href","#add-metaobject")[0].innerText = "Add Object";
答案 0 :(得分:5)
如果选择器找到0,则跟随它后面的内容无关紧要。
$(".nonExistentElement").css("color","red"); // nothing will be red
$.each()
也是如此
$(".nonExistentElement").each(function(){
World.technology.push(new PerpetualMotionMachine);
// too bad this block will never take place
});
您可以使用三元运算符,但它实际上只是另一个条件检查:
$("#someEl").length ? alert("found") : alert("not found") ;
答案 1 :(得分:2)
修改强>
误解了原始问题,但在您的示例代码中,您可以像Jonathan建议的那样将操作链接起来:
menu.find('a[href="#add"]').attr("href","#add-metaobject").find(":first").text("Add Object");
答案 2 :(得分:0)
如果您对找到的每个单独对象进行操作,则可以使用.each()
方法,如果未找到任何项目,则该方法将无法执行:
menu.find('a[href="#add"]').each(function() {
// do stuff...
});