hide()不起作用

时间:2014-05-26 02:10:20

标签: jquery

我想用jQuery .hide()隐藏我的第二张图片,但该方法在某些情况下无效。

这是我的代码:

的jQuery

var one = $('ul li > img')[0];
var two = $('ul li img')[1];
var three = $('ul li img')[2];

$(two).on('click', function(){
  alert('working');
});

two.hide();

HTML

<ul>
  <li><img src="http://img.pixland.uz/u13301f281573m.jpg" alt=""></li>
  <li><img src="http://img.pixland.uz/u13301f281573m.jpg" alt=""></li>
  <li><img src="http://img.pixland.uz/u13301f281573m.jpg" alt=""></li>
</ul>

DEMO

5 个答案:

答案 0 :(得分:8)

$('ul li img')[1]是一个DOM对象,而不是一个jQuery对象,所以它没有.hide()方法。

您可以使用:

$('ul li img').eq(1)

相反,如果你想要一个jQuery对象。

整个代码块看起来像这样:

var one = $('ul li > img').eq(0);
var two = $('ul li img').eq(1);
var three = $('ul li img').eq(2);

two.on('click', function(){
  alert('working');
});

two.hide();

答案 1 :(得分:1)

名为two的对象不是 jQuery 对象,它只是一个简单的 DOM 对象。你应该这样做:

var one = $('ul li > img')[0];
var two = $('ul li img')[1];
var three = $('ul li img')[2];

$(two).on('click', function(){
  alert('working');
});

$(two).hide();

或做:

var one = $('ul li > img').eq(0);
var two = $('ul li img').eq(1);
var three = $('ul li img').eq(2);

$(two).on('click', function(){
  alert('working');
});

two.hide();

答案 2 :(得分:1)

试试这个:

var one = $('ul li > img')[0];
var two = $('ul li img')[1];
var three = $('ul li img')[2];

$(two).on('click', function(){
  alert('working');
    $(two).hide();
});

答案 3 :(得分:0)

您需要更改代码的所有内容是two.hide()到$ {two} .hide()

答案 4 :(得分:0)

var one = $('ul li:eq(0) img');
var two = $('ul li:eq(1) img');
var three = $('ul li:eq(2) img');