jQuery如果对象存在

时间:2010-11-12 11:38:01

标签: javascript jquery if-statement

我有一个脚本可以复制图像的ALT文本中的文本并制作一个标题框,然后输入文字。

var alt = $("#hoejre p span img").attr("alt");
$('#hoejre p span img').after('<span></span>');
$('#hoejre p span span').html('<strong>' + alt.replace('-', '</strong> <em>') + '</em>');

当有图像时,这很有效。但是当没有任何图像时,脚本在IE7中失败。

如何使用IF句子包装VAR。

4 个答案:

答案 0 :(得分:3)

为什么在查看长度属性时调用方法?

if ($imgs.length) {
  ... /* one or more images exist */
}

答案 1 :(得分:1)

您可以使用.size()

检查jQuery选择器返回的对象数量

检查 fcalderan的answer ,建议改用.length属性。
它有相同的结果,但可能更快。

例如,您可以执行以下操作:

var $imgs = $("#hoejre p span img");
if( $imgs.size() > 0 ) {
    var alt = $imgs.attr("alt"); 
    $('<span></span>').html('<strong>' + alt.replace('-', '</strong> <em>') + '</em>')
                      .insertAfter( $imgs );
}

答案 2 :(得分:1)

size()方法:

if ($("#hoejre p span img").size() > 0)
{
  var alt = $("#hoejre p span img").attr("alt");
  $('#hoejre p span img').after('<span></span>');
  $('#hoejre p span span').html('<strong>' + alt.replace('-', '</strong> <em>') + '</em>');
}

答案 3 :(得分:1)

jQuery选择器返回一个数组。

您可以检查它是否包含具有本机JS Array.length属性的任何元素。根据{{​​1}}确定长度是否> 0。