На сторінці <head>
я маю <script>
, <style>
, <link>
і <meta>
теги. Я просто хочу прочитати мета-інформацію з голови та нічого іншого. Мене в основному цікавить <meta name="description"..>
і <meta name="keywords"...>
.
Я хочу повний метатег, а не його вміст. Я знаю, що вмію читати вміст, роблячи
$("head meta[name=descritption]").attr("content")
але це не те, що я хочу. Я хочу такий результат
<meta name="description" content="" >
<meta name="keywords" content="" >
Який ефективний спосіб це зробити?
Відповіді:
1 для відповіді № 1jQuery не має простого способу сказати "отримати HTMLвибраного на даний момент елемента. "Ваші метатеги, мабуть, також не містять вмісту, тому потрібно мати лише HTML метатегів. Я не впевнений, чому ви ставите [name=description]
умова там, як здається, суперечить тому, що ви хочете, але ви можете зберегти це:
var html = "";
$("head meta").each(function () {
html += $(this).clone().wrap("<div>").parent().html();
});
alert(html);
1 для відповіді № 2
document.getElementsByTagName("meta");
Це я зроблю. І о, дивіться, жоден jQuery не потрібен, оскільки це простий вибір тегів.
Але якщо jQuery є обов'язковим:
$("meta");
Зі сторони, якщо ви просто хотіли всі метатеги, чому ви робили додаткові речі?
0 для відповіді № 3
Далі повертає масив усіх метатегів:
$("meta"); // [<meta name="description" content="">, etc, etc]
0 для відповіді № 4
$("head meta")
надає масив об’єктів jQuery, і ви можете використовувати їх .get(n)
отримати n-е як звичайне DOM об’єкт. На цій сторінці:
$("head meta").get(0)
дає
<meta name="title" content="javascript - jQuery how do i read all &lt;meta..&gt; from &lt;head&gt; - Stack Overflow">