jQuery: Use positional methods on single selectors.

For selectors like `$('.element:first')`, we can simply write
`$('.element').first()`.
This commit is contained in:
Thomas Ip 2019-06-06 11:50:36 +08:00 committed by Tim Abbott
parent 13a20a1ab5
commit 6cad1988a9
9 changed files with 40 additions and 40 deletions

View File

@ -136,7 +136,7 @@ run_test('admin_default_streams_list', () => {
html += render('admin_default_streams_list', args);
});
html += "</table>";
var span = $(html).find(".default_stream_name:first");
var span = $(html).find(".default_stream_name").first();
assert.equal(span.text(), "devel");
// When the logged in user is not admin
@ -149,7 +149,7 @@ run_test('admin_default_streams_list', () => {
html += render('admin_default_streams_list', args);
});
html += "</table>";
span = $(html).find(".default_stream_name:first");
span = $(html).find(".default_stream_name").first();
assert.equal(span.text(), "devel");
});
@ -292,7 +292,7 @@ run_test('admin_invites_list', () => {
assert($(buttons[3]).hasClass("resend"));
assert.equal($(buttons[3]).attr("data-invite-id"), 1);
var span = $(html).find(".email:first");
var span = $(html).find(".email").first();
assert.equal(span.text(), "alice@zulip.com");
});
@ -323,7 +323,7 @@ run_test('admin_user_group_list', () => {
html += render('admin_user_group_list', args);
html += '</div>';
var group_id = $(html).find('.user-group:first').prop('id');
var group_id = $(html).find('.user-group').first().prop('id');
var group_pills_id = $(html).find('.user-group:first .pill-container').attr('data-group-pills');
var group_name_display = $(html).find('.user-group:first .name').text().trim().replace(/\s+/g, ' ');
var group_description = $(html).find('.user-group:first .description').text().trim().replace(/\s+/g, ' ');
@ -399,7 +399,7 @@ run_test('alert_word_settings_item', () => {
html += render('alert_word_settings_item', args);
html += "</ul>";
var li = $(html).find("li.alert-word-item:first");
var li = $(html).find("li.alert-word-item").first();
var value = li.find('.value');
var button = li.find('button');
assert.equal(li.attr('data-word'), 'lunch');
@ -504,7 +504,7 @@ run_test('bot_owner_select', () => {
],
};
var html = render('bot_owner_select', args);
var option = $(html).find("option:last");
var option = $(html).find("option").last();
assert.equal(option.val(), "hamlet@zulip.com");
assert.equal(option.text(), "Hamlet");
});
@ -517,12 +517,12 @@ run_test('compose_invite_users', () => {
can_subscribe_other_users: true,
};
var html = render('compose-invite-users', args);
var button = $(html).find("button:first");
var button = $(html).find("button").first();
assert.equal(button.text(), "translated: Subscribe");
args.can_subscribe_other_users = false;
html = render('compose-invite-users', args);
button = $(html).find("button:first");
button = $(html).find("button").first();
assert.equal(button.length, 0);
});
@ -532,7 +532,7 @@ run_test('compose_all_everyone', () => {
name: 'all',
};
var html = render('compose_all_everyone', args);
var button = $(html).find("button:first");
var button = $(html).find("button").first();
assert.equal(button.text(), "translated: Yes, send");
var error_msg = $(html).find('span.compose-all-everyone-msg').text().trim();
assert.equal(error_msg, "translated: Are you sure you want to mention all 101 people in this stream?");
@ -543,7 +543,7 @@ run_test('compose_announce', () => {
count: '101',
};
var html = render('compose_announce', args);
var button = $(html).find("button:first");
var button = $(html).find("button").first();
assert.equal(button.text(), "translated: Yes, send");
var error_msg = $(html).find('span.compose-announce-msg').text().trim();
assert.equal(error_msg, "translated: This stream is reserved for announcements.\n \n Are you sure you want to message all 101 people in this stream?");
@ -551,10 +551,10 @@ run_test('compose_announce', () => {
run_test('compose_not_subscribed', () => {
var html = render('compose_not_subscribed', {should_display_sub_button: true});
var button = $(html).find("button:first");
var button = $(html).find("button").first();
assert.equal(button.text(), "translated: Subscribe");
html = render('compose_not_subscribed', {should_display_sub_button: false});
button = $(html).find("button:first");
button = $(html).find("button").first();
assert.equal(button.length, 0);
});
@ -652,7 +652,7 @@ run_test('draft_table_body', () => {
run_test('email_address_hint', () => {
var html = render('email_address_hint');
var li = $(html).find("li:first");
var li = $(html).find("li").first();
assert.equal(li.text(), 'translated: The email will be forwarded to this stream');
});
@ -769,7 +769,7 @@ run_test('group_pms', () => {
};
var html = render('group_pms', args);
var a = $(html).find("a:first");
var a = $(html).find("a").first();
assert.equal(a.text(), 'Alice and Bob');
});
@ -820,7 +820,7 @@ run_test('invite_subscription', () => {
};
var html = render('invite_subscription', args);
var input = $(html).find("label:first");
var input = $(html).find("label").first();
assert.equal(input.text().trim(), "devel");
});
@ -840,7 +840,7 @@ run_test('single_message', () => {
var html = render('single_message', message);
html = '<div class="message_table focused_table" id="zfilt">' + html + '</div>';
var first_message = $(html).find("div.messagebox:first");
var first_message = $(html).find("div.messagebox").first();
var first_message_text = first_message.find(".message_content").text().trim();
assert.equal(first_message_text, "This is message one.");
@ -1023,7 +1023,7 @@ run_test('new_stream_users', () => {
var html = render('new_stream_users', args);
var label = $(html).find("label:first");
var label = $(html).find("label").first();
assert.equal(label.text().trim(), 'King Lear (lear@zulip.com)');
});
@ -1041,7 +1041,7 @@ run_test('non_editable_user_group', () => {
html += render('non_editable_user_group', args);
html += '</div>';
var group_id = $(html).find('.user-group:first').prop('id');
var group_id = $(html).find('.user-group').first().prop('id');
var group_pills_id = $(html).find('.user-group:first .pill-container').attr('data-group-pills');
var group_name_display = $(html).find('.user-group:first .name').text().trim().replace(/\s+/g, ' ');
var group_description = $(html).find('.user-group:first .description').text().trim().replace(/\s+/g, ' ');
@ -1214,7 +1214,7 @@ run_test('stream_sidebar_actions', () => {
var html = render('stream_sidebar_actions', args);
var li = $(html).find("li:first");
var li = $(html).find("li").first();
assert.equal(li.text().trim(), 'translated: Stream settings');
});
@ -1266,7 +1266,7 @@ run_test('subscription_settings', () => {
var div = $(html).find(".subscription-type");
assert(div.text().indexOf('private stream') > 0);
var anchor = $(html).find(".change-stream-privacy:first");
var anchor = $(html).find(".change-stream-privacy").first();
assert.equal(anchor.text(), "[translated: Change]");
});
@ -1329,7 +1329,7 @@ run_test('subscriptions', () => {
html += render('subscriptions', args);
html += '</div>';
var span = $(html).find(".stream-name:first");
var span = $(html).find(".stream-name").first();
assert.equal(span.text(), 'devel');
});
@ -1354,14 +1354,14 @@ run_test('tab_bar', () => {
var html = render('tab_bar', args);
var a = $(html).find("li:first");
var a = $(html).find("li").first();
assert.equal(a.text().trim(), 'Home');
});
run_test('topic_edit_form', () => {
var html = render('topic_edit_form');
var button = $(html).find("button:first");
var button = $(html).find("button").first();
assert.equal(button.find("i").attr("class"), 'fa fa-check');
});
@ -1443,7 +1443,7 @@ run_test('typing_notifications', () => {
html += render('typing_notifications', args);
html += '</ul>';
var li = $(html).find('li:first');
var li = $(html).find('li').first();
assert.equal(li.text(), 'Hamlet is typing...');
});
@ -1588,7 +1588,7 @@ run_test('user_presence_rows', () => {
html += render('user_presence_rows', args);
html += '</ul>';
var a = $(html).find("a:first");
var a = $(html).find("a").first();
assert.equal(a.text().trim(), 'King Lear');
});

View File

@ -110,7 +110,7 @@ var rows = {
return $(message_row).parent('.recipient_row');
},
first_message_in_group: function (message_group) {
return $('div.message_row:first', message_group);
return $('div.message_row', message_group).first();
},
id: function (message_row) {
return parseFloat(message_row.attr('zid'));

View File

@ -228,7 +228,7 @@ exports.analyze_selection = function (selection) {
// the compose_close button when you go off the end of the
// last message
if (endc.attr('id') === "bottom_whitespace" || endc.attr('id') === "compose_close") {
initial_end_tr = $(".message_row:last");
initial_end_tr = $(".message_row").last();
// The selection goes off the end of the message feed, so
// this is a multi-message selection.
skip_same_td_check = true;

View File

@ -393,12 +393,12 @@ function drafts_scroll(next_focus_draft_row) {
activate_element(next_focus_draft_row[0].children[0]);
// If focused draft is first draft, scroll to the top.
if ($(".draft-info-box:first")[0].parentElement === next_focus_draft_row[0]) {
if ($(".draft-info-box").first()[0].parentElement === next_focus_draft_row[0]) {
$(".drafts-list")[0].scrollTop = 0;
}
// If focused draft is the last draft, scroll to the bottom.
if ($(".draft-info-box:last")[0].parentElement === next_focus_draft_row[0]) {
if ($(".draft-info-box").last()[0].parentElement === next_focus_draft_row[0]) {
$(".drafts-list")[0].scrollTop = $('.drafts-list')[0].scrollHeight - $('.drafts-list').height();
}

View File

@ -753,7 +753,7 @@ MessageListView.prototype = {
// Insert new messages in to the last message group
if (message_actions.append_messages.length > 0) {
last_message_row = table.find('.message_row:last').expectOne();
last_message_row = table.find('.message_row').last().expectOne();
last_group_row = rows.get_message_recipient_row(last_message_row);
dom_messages = $(_.map(message_actions.append_messages, function (message_container) {
return self._get_message_template(message_container);

View File

@ -177,8 +177,8 @@ function _visible_divs(selected_row, row_min_height, row_to_output, div_class,
// We do this explicitly without merges and without recalculating
// the feed bounds to keep this computation as cheap as possible.
var visible = [];
var above_pointer = selected_row.prevAll("div." + div_class + ":lt(" + num_neighbors + ")");
var below_pointer = selected_row.nextAll("div." + div_class + ":lt(" + num_neighbors + ")");
var above_pointer = selected_row.prevAll("div." + div_class).slice(0, num_neighbors);
var below_pointer = selected_row.nextAll("div." + div_class).slice(0, num_neighbors);
add_to_visible(selected_row, visible, top_of_feed.get(), bottom_of_feed.get(),
require_fully_visible, row_to_output);
add_to_visible(above_pointer, visible, top_of_feed.get(), bottom_of_feed.get(),

View File

@ -54,12 +54,12 @@ $(function () {
if ($('.help-inline:not(:empty)').length === 0) {
// Find the first input field present in the form that is
// not hidden and disabled and store it in a variable.
var firstInputElement = $("input:not(:hidden, :disabled):first");
var firstInputElement = $("input:not(:hidden, :disabled)").first();
// Focus on the first input field in the form.
common.autofocus(firstInputElement);
} else { // If input field with errors is present.
// Find the input field having errors and stores it in a variable.
var inputElementWithError = $('.help-inline:not(:empty):first').parent().find('input');
var inputElementWithError = $('.help-inline:not(:empty)').first().parent().find('input');
// Focus on the input field having errors.
common.autofocus(inputElementWithError);
}

View File

@ -18,7 +18,7 @@ exports.next_visible = function (message_row) {
if (next_recipient_rows.length === 0) {
return $();
}
return $('.selectable_row:first', next_recipient_rows[0]);
return $('.selectable_row', next_recipient_rows[0]).first();
};
exports.prev_visible = function (message_row) {
@ -34,15 +34,15 @@ exports.prev_visible = function (message_row) {
if (prev_recipient_rows.length === 0) {
return $();
}
return $('.selectable_row:last', prev_recipient_rows[0]);
return $('.selectable_row', prev_recipient_rows[0]).last();
};
exports.first_visible = function () {
return $('.focused_table .selectable_row:first');
return $('.focused_table .selectable_row').first();
};
exports.last_visible = function () {
return $('.focused_table .selectable_row:last');
return $('.focused_table .selectable_row').last();
};
exports.id = function (message_row) {
@ -79,7 +79,7 @@ exports.get_closest_group = function (element) {
};
exports.first_message_in_group = function (message_group) {
return $('div.message_row:first', message_group);
return $('div.message_row', message_group).first();
};
exports.get_message_recipient_row = function (message_row) {

View File

@ -655,7 +655,7 @@ exports.switch_rows = function (event) {
// Prevent switching stream rows when creating a new stream
return false;
} else if (!active_data.id || active_data.row.hasClass('notdisplayed')) {
switch_row = $('div.stream-row:not(.notdisplayed):first');
switch_row = $('div.stream-row:not(.notdisplayed)').first();
if ($('#search_stream_name').is(":focus")) {
$('#search_stream_name').blur();
}