Вы можете сделать это, не самое чистое, но то, что вы пытаетесь сделать, довольно странно, поэтому нет лучшего способа справиться с этим:
var mt = $('meta[name=some-name]');
mt = mt.length ? mt : $('<meta name="some-name" />').appendTo('head');
mt.attr('content', 'some value');
Условное выражение здесь проверяет . length
, который равен 0 или false
, если не найден, если это так, мы создаем элемент и добавляем его в head, независимо от того, был ли он добавлен или изначально найден, mt
устанавливается в с этим именем сейчас, и вы можете установить атрибут.
Используя код Ника, я создал функцию для настройки метатега, создавая при необходимости. Если это будет полезно для кого-то ...
function setOrCreateMetaTag(metaName, name, value) {
var t = 'meta['+metaName+'='+name+']';
var mt = $(t);
if (mt.length === 0) {
t = '<meta '+metaName+'="'+name+'" />';
mt = $(t).appendTo('head');
}
mt.attr('content', value);
}
В качестве мета-имени чаще всего можно предположить, что это «имя», но мне также нужно установить «свойство», поэтому функция должна обрабатывать мета-имя.