te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - jQuery show() not a function - used in adding DOM elements - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery show() not a function - used in adding DOM elements - Stack Overflow

programmeradmin2浏览0评论

I am migrating from PrototypeJS to jQuery, and I'm having issues with applying functionality to new DOM elements added into a simple banner script.

Basically, on page load, new DIV elements are being placed into the DOM using append(), as I understand, this is how it's done in jQuery as opposed to Prototype's Element object.

$.each(Banner.data, function(i, e) {
  $('#banner_area').append("<div class='banner_slot' id='bannner-"+ i +"'>...[nested elements]</div>").hide();
    });
$('.banner_slot').get(0).show();

Upon checking Firebug, the elements have successfully been added to the DOM, and are immediately hidden. Then the first (0) element should show... however, Firebug give me this error:

TypeError: $(...).get(...).show is not a function
.js
Line 15

I'm sure this is something simple, as I've been using Prototype for years, but need to move to jQuery because, well... more people use it so the resources are infinitely better.

Is there some fundamental difference between the two that I'm missing here?

I am migrating from PrototypeJS to jQuery, and I'm having issues with applying functionality to new DOM elements added into a simple banner script.

Basically, on page load, new DIV elements are being placed into the DOM using append(), as I understand, this is how it's done in jQuery as opposed to Prototype's Element object.

$.each(Banner.data, function(i, e) {
  $('#banner_area').append("<div class='banner_slot' id='bannner-"+ i +"'>...[nested elements]</div>").hide();
    });
$('.banner_slot').get(0).show();

Upon checking Firebug, the elements have successfully been added to the DOM, and are immediately hidden. Then the first (0) element should show... however, Firebug give me this error:

TypeError: $(...).get(...).show is not a function
http://www.ten103./javascript/global_desktop.js
Line 15

I'm sure this is something simple, as I've been using Prototype for years, but need to move to jQuery because, well... more people use it so the resources are infinitely better.

Is there some fundamental difference between the two that I'm missing here?

Share Improve this question asked Jul 11, 2015 at 15:53 mwieczorekmwieczorek 2,2527 gold badges34 silver badges39 bronze badges 2
  • instead of $('.banner_slot').get(0).show(), try using $('.banner_slot')[0].show() – Miguel Ike Commented Jul 11, 2015 at 15:55
  • 6 Use the proper method, just replace get with eq – adeneo Commented Jul 11, 2015 at 15:56
Add a ment  | 

2 Answers 2

Reset to default 10
$('.banner_slot').get(0).show();

change to

$('.banner_slot').eq(0).show();

.get() returns DOM element while .eq() returns jQuery object and .show() is jQuery API.

For more information about .get() and .eq() checkout the jQuery API docs

You need to update

$('.banner_slot').get(0).show();

to

$($('.banner_slot').get(0)).show();

Note : get() gives you a DOM Element and show() is applicable on jQuery object, hence, you need to convert it into jQuery object to use the function.

发布评论

评论列表(0)

  1. 暂无评论