Выберите значения группы флажков с jQuery

Как сообщить Facebook, какой образ использовать, когда моя страница делится?

В Facebook есть набор метаданных с открытым графиком , на которые он может решить, какое изображение показывать.

Ключом для изображения Facebook являются:



, и он должен присутствовать внутри тега в верхней части страницы.

Если эти теги отсутствуют, он будет искать свой более старый метод указания изображения: . Если ни один из них не присутствует, Facebook будет просматривать содержимое вашей страницы и выбирать изображения со своей страницы, соответствующие критериям его общего изображения: Изображение должно быть не менее 200 пикселей на 200 пикселей, иметь максимальный формат изображения 3: 1 и в формате PNG, JPEG или GIF.

Могу ли я указать несколько изображений, чтобы пользователь мог выбрать изображение?

Да, вам просто нужно добавить несколько метатег изображений в том порядке, в котором вы хотите, чтобы они отображались. пользователь будет представлен диалоговым окном селектора изображений: Facebook Image Selector [/g5]

Я указал соответствующие метатеги изображений. Почему Facebook не принимает изменения?

После того, как URL был открыт, искатель Facebook, у которого есть пользовательский агент facebookexternalhit/1.1 (+https://www.facebook.com/externalhit_uatext.php), будет обращаться к вашей странице и кэшировать метаинформацию. Чтобы заставить Facebook-серверы очистить кеш, используйте Facebook Url Debugger / Linter Tool , который они запустили в июне 2010 года , чтобы обновить кеш и устранить любые проблемы с метатегами на вашей странице ,

Кроме того, изображения на странице должны быть общедоступны для искателя Facebook. Вы должны указать абсолютный url как http://example.com/yourimage.jpg вместо просто /yourimage.jpg.

Могу ли я обновить эти метатеги клиентским кодом, например Javascript или jQuery? Нет. Подобно поисковым роботам, скребок Facebook не выполняет сценарии, поэтому любые метатеги присутствуют при загрузке страницы - это метатеги, которые используются для выбора изображения.

Добавление этих тегов приводит к моей странице чтобы больше не проверять. Как это исправить?

Вы можете добавить необходимые теги имен Facebook в свой тег, и ваша страница должна пройти проверку:

  

63
задан dragonmantank 6 January 2009 в 14:35
поделиться

6 ответов

Вы могли использовать проверенный селектор для захвата только выбранных (инвертирующий потребность знать количество или выполнить итерации по ним всем сами):

$("input[name='user_group[]']:checked")

С теми проверенными объектами, можно или создать набор тех значений или сделать что-то к набору:

var values = new Array();
$.each($("input[name='user_group[]']:checked"), function() {
  values.push($(this).val());
  // or you can do something to the actual checked checkboxes by working directly with  'this'
  // something like $(this).hide() (only something useful, probably) :P
});
131
ответ дан patridge 7 November 2019 в 12:28
поделиться

Я просто сократил ответ, я выбрал немного:

var selectedGroups  = new Array();
$("input[@name='user_group[]']:checked").each(function() {
    selectedGroups.push($(this).val());
});

и это работает как очарование, Спасибо!

2
ответ дан dragonmantank 7 November 2019 в 12:28
поделиться

Я не на 100% совершенно уверен, как Вы хотите "захватить" значения. Но если Вы хотите выполнить итерации по флажкам, можно использовать .each как так:

("input[@name='user_group[]']").each( function() {
    alert($(this).val());
});

, Конечно, лучший селектор доступен:

$(':checkbox')
1
ответ дан Brandon 7 November 2019 в 12:28
поделиться

У Вас может быть переменная JavaScript, которая хранит количество флажков, которые испускаются, т.е. в <head> из страницы:

<script type="text/javascript">
var num_cboxes=<?php echo $number_of_checkboxes;?>;
</script>

Поэтому, если бы существует 10 флажков, запускающихся от user_group-1 до user_group-10, в коде JavaScript, Вы получили бы их значение таким образом:

var values=new Array();
for (x=1; x<=num_cboxes; x++)
{
   values[x]=$("#user_group-" + x).val();
}
0
ответ дан Click Upvote 7 November 2019 в 12:28
поделиться

мхата дзеню месе. его на самом деле

var selectedGroups  = new Array();
$(".user_group[checked]").each(function() {
    selectedGroups.push($(this).val());
});
4
ответ дан 24 November 2019 в 16:08
поделиться

Я не уверен в использовании символа «@» в селекторе. По крайней мере, в последней версии jQuery мне пришлось удалить @, чтобы заставить это работать с двумя разными массивами флажков, в противном случае для каждого массива были выбраны все отмеченные элементы:

var items = [];
$("input[name='items[]']:checked").each(function(){items.push($(this).val());});

var about = [];
$("input[name='about[]']:checked").each(function(){about.push($(this).val());});

Теперь и элементы, и о работе.

16
ответ дан 24 November 2019 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: