問題タブ [tagname]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
45 参照

javascript - 関数パラメータとして入力された文字列が HTML タグ名の 1 つであるかどうかを確認します

次のコードに示すコードコメントに記載されているように、使用できるコンストラクターに取り組んでいます。

これは、次のようなコードをどこかに入力すると機能します。

new Adjoin("div", "foo_id", "foo_class").addChildTo("some_parent")

これもうまくいきます:

new Adjoin("div").addChildTo("some_parent")

私が行き詰まっているのは、最初のパラメーターが HTML タグ名の 1 つであるかどうかを確認する手段です。たとえば、コードが次のように入力された場合にエラーをスローしたい:

new Adjoin("not_an_html_element", "foo_id", "foo_class").addChildTo("manchoo_parent")

前もって感謝します!

アップデート

さて、この質問を投稿するのが少し早すぎたようです。次のコードを入力しました。

new Adjoin(75).addChildTo("footer");

このエラーが発生しました:

キャッチされない DOMException: 'Document' で 'createElement' を実行できませんでした: 指定されたタグ名 ('75') は有効な名前ではありません。

したがって、すでに組み込みエラーがあります。

ただし、次のコードを入力すると:

new Adjoin("DaveyJones").addChildTo("footer");

サイトのフッターに次の「タグ」が追加されます。

<daveyjones></daveyjones>

明らかに、これは有効な HTML タグではありません。

文字列以外の場合はエラーがスローされますが、文字列はエラーなしで HTML タグに追加されます。

さらに別の更新

user2676208 で提案されたように、この質問では条件として設定して、これを試しました。

ただし、常に「それは有効な HTML 要素です!」というログが記録されます。「div」または「DaveyJones」または「anyOtherString」のいずれを使用するか。

このアイデアは好きではありませんが、タグ名の配列を設定し、ループで比較を行う必要があるかもしれません。私には不器用に思えるので、それを回避する方法があることを本当に望んでいました. Javascript には、有効な HTML をチェックする手段がすでにあると思っていました...

0 投票する
1 に答える
46 参照

html - AngularでtagNameと文字列の値を比較するには?

タグ名がいつ「MAIN」であるかを調べてから、いくつかの機能をトリガーしようとしましたが、残念ながら着実にエラーが発生します

タイプ「Event」と「Main」には重複がないため、この条件は常に true を返します。

これを達成する方法はありますか?