From b72f30bd0680a551c5f9d75bb0cf90edc0bdc2e0 Mon Sep 17 00:00:00 2001 From: Thomas Ip Date: Thu, 6 Jun 2019 12:04:16 +0800 Subject: [PATCH] jQuery: Replace positional selectors at the end of multiple selectors. A selector like `$('.elem1 .elem2:first')` selects the first descendant with class name `.elem2` under `.elem1`. This is the same as saying `$('.elem1 .elem2').first()`. See example here: https://jsbin.com/bohehesari/edit?html,js,output --- frontend_tests/casper_tests/08-edit.js | 8 ++++---- frontend_tests/casper_tests/12-toggle-message-editing.js | 8 ++++---- frontend_tests/casper_tests/15-delete-message.js | 2 +- static/js/portico/landing-page.js | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/frontend_tests/casper_tests/08-edit.js b/frontend_tests/casper_tests/08-edit.js index 71cb56cdef..039948735f 100644 --- a/frontend_tests/casper_tests/08-edit.js +++ b/frontend_tests/casper_tests/08-edit.js @@ -5,7 +5,7 @@ common.start_and_log_in(); function then_edit_last_message() { casper.then(function () { casper.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.info').click(); $('.popover_edit_message').click(); }); @@ -33,7 +33,7 @@ then_edit_last_message(); casper.then(function () { casper.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.message_edit_topic').val("edited"); msg.find('.message_edit_content').val("test edited"); msg.find('.message_edit_save').click(); @@ -60,7 +60,7 @@ then_edit_last_message(); casper.then(function () { casper.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.message_edit_topic').val("edited"); msg.find('.message_edit_content').val("/me test edited one line with me"); msg.find('.message_edit_save').click(); @@ -84,7 +84,7 @@ then_edit_last_message(); casper.then(function () { casper.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.message_edit_content').val("test edited pm"); msg.find('.message_edit_save').click(); }); diff --git a/frontend_tests/casper_tests/12-toggle-message-editing.js b/frontend_tests/casper_tests/12-toggle-message-editing.js index c0edaf3e25..07ac8d85d3 100644 --- a/frontend_tests/casper_tests/12-toggle-message-editing.js +++ b/frontend_tests/casper_tests/12-toggle-message-editing.js @@ -42,7 +42,7 @@ casper.then(function () { // edit the last message just sent casper.then(function () { casper.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.info').click(); $('.popover_edit_message').click(); }); @@ -53,7 +53,7 @@ var edited_value = 'admin tests: test edit'; casper.then(function () { casper.waitUntilVisible(".message_edit_content", function () { casper.evaluate(function (edited_value) { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.message_edit_content').val(edited_value); msg.find('.message_edit_save').click(); }, edited_value); @@ -130,14 +130,14 @@ casper.then(function () { // Note that this could have a false positive, e.g. if all the messages aren't // loaded yet. See Issue #1243 casper.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.info').click(); }); casper.waitUntilVisible('.popover_edit_message', function () { casper.test.assertSelectorHasText('.popover_edit_message', 'View source'); }); casper.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.info').click(); }); }); diff --git a/frontend_tests/casper_tests/15-delete-message.js b/frontend_tests/casper_tests/15-delete-message.js index 5e01dbe137..74f50dc35f 100644 --- a/frontend_tests/casper_tests/15-delete-message.js +++ b/frontend_tests/casper_tests/15-delete-message.js @@ -15,7 +15,7 @@ casper.then(function () { return $('#zhome .message_row').length; }); last_message_id = this.evaluate(function () { - var msg = $('#zhome .message_row:last'); + var msg = $('#zhome .message_row').last(); msg.find('.info').click(); $('.delete_message').click(); return msg.attr('id'); diff --git a/static/js/portico/landing-page.js b/static/js/portico/landing-page.js index a027b7ac3c..7a3ef6ac08 100644 --- a/static/js/portico/landing-page.js +++ b/static/js/portico/landing-page.js @@ -240,9 +240,9 @@ var load = function () { $('.carousel').on('slid', function () { var $this = $(this); $this.find('.visibility-control').show(); - if ($this.find('.carousel-inner .item:first').hasClass('active')) { + if ($this.find('.carousel-inner .item').first().hasClass('active')) { $this.find('.left.visibility-control').hide(); - } else if ($this.find('.carousel-inner .item:last').hasClass('active')) { + } else if ($this.find('.carousel-inner .item').last().hasClass('active')) { $this.find('.right.visibility-control').hide(); } });