将 $(this) 与 jQuery 一起使用

发布于 2024-11-05 09:10:43 字数 1041 浏览 0 评论 0原文

我仍然是一名 jquery/javascript 新手,所以如果这是一个显而易见的问题,请原谅我。

我正在为一次会议制作一个艺术家简介页面(它在实时视图中 http://www .thinkinc.org.au/artists.html)。当您单击艺术家的图像时,会打开一个包含艺术家简介和视频的颜色框。单击缩略图时,我想向用户正在查看的扬声器的初始视频(“initvid”)发送 .remove() 命令。

有问题的 javascript 代码在这里:

 $(document).ready(function () {
        $('.thumbnails img').click(function () {
            $('#initvid')+$(this).attr('id').remove(); /* I want this to get #initvid + the id of the thumbnail image that was clicked (to make #initvidtyson or #initvidhitchens) then .remove() it */

            $('#vidContainer').html('<iframe id="playingMovie" width="480" height="390" src="' + $(this).attr('toobId') +'" frameborder="0" allowfullscreen></iframe>');

            $('#vidContainer iframe').fadeToggle(400);
        });
    });

如果你查看我的缩略图代码,每个缩略图都有一个他们所属的艺术家的 id。 (例如;)。我想创建一个 jquery 函数来删除 #initvidhitchens 或 #initvidtyson (取决于单击的生物拇指)。

可能遗漏了一些非常明显的东西,但为什么我当前的代码不起作用?

I'm still a jquery/javascript newbie, so forgive me if this is an obvious one.

I'm making an artist bio page for a conference (it's up here in live view http://www.thinkinc.org.au/artists.html ). When you click an artist's image, a colorbox opens up with artist bio and videos. When clicking the thumbnails, I want to send a .remove() command to the initial video ("initvid") of the speaker the user is viewing.

The offending javascript code is here:

 $(document).ready(function () {
        $('.thumbnails img').click(function () {
            $('#initvid')+$(this).attr('id').remove(); /* I want this to get #initvid + the id of the thumbnail image that was clicked (to make #initvidtyson or #initvidhitchens) then .remove() it */

            $('#vidContainer').html('<iframe id="playingMovie" width="480" height="390" src="' + $(this).attr('toobId') +'" frameborder="0" allowfullscreen></iframe>');

            $('#vidContainer iframe').fadeToggle(400);
        });
    });

If you look at the code for my thumbnails, each has an id for the artist whose bio they belong to. (e.g. ; ). I want to create a jquery function that removes #initvidhitchens or #initvidtyson (depending on which bio thumbs are being clicked).

Probably missing something quite obvious, but why isn't my current code working?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

贩梦商人 2024-11-12 09:10:44

它应该是这样的:

$('#initvid' + $(this).attr('id')).remove();

或者这样:

$('#initvid'+this.id).remove();

您的代码不起作用,因为:

 $('#initvid') + //Here you're getting element with id 'initvid', which doesn't exist
 $(this).attr('id').remove();  //The result of getting id attribute wasn't a jQuery object, so it doesn't have 'remove' method

希望这有帮助

It should be like this:

$('#initvid' + $(this).attr('id')).remove();

or this:

$('#initvid'+this.id).remove();

Your code wasn't working because:

 $('#initvid') + //Here you're getting element with id 'initvid', which doesn't exist
 $(this).attr('id').remove();  //The result of getting id attribute wasn't a jQuery object, so it doesn't have 'remove' method

Hope this helps

不美如何 2024-11-12 09:10:44
$('#initvid' + $(this).attr('id')).remove();
$('#initvid' + $(this).attr('id')).remove();
话少心凉 2024-11-12 09:10:44

关闭。传递给 $字符串是需要连接额外标识符的内容。

$('#initvid' + $(this).attr('id')).remove();

将其视为:

$('#initvid' + extra) // the *result* of the string concat is used as the selector

但是,根据具体问题,可能有更干净的方法来完成此任务。

快乐编码。

Close. The string passed to $ is what needs to have the extra identifier concatenated.

$('#initvid' + $(this).attr('id')).remove();

Think of it as:

$('#initvid' + extra) // the *result* of the string concat is used as the selector

However, depending upon exact problem, there may be cleaner methods to accomplish this task.

Happy coding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文