そうです、最近 jQuery のトレーニングを行っていたときに、jQuery が要素が存在するかどうかを判断するときに問題が発生しました。
質問は次のとおりです。「選択ボタン 3」の後に Id=rad4 を追加してください。選択された状態では、「選択ボタン 4」というテキストを含む HTML コントロールは 1 回だけ追加できます (js ネイティブの使用を選択できます)。または JQuery を使用して実装します)
function addradio() { if (!document.getElementById("rad4")) { var main = document.getElementById("radioContainer"); var input = document.createElement("input"); input.setAttribute("type", "radio"); input.setAttribute("id", "rad4"); var span = document.createElement("span"); var txt = document.createTextNode("选择按钮4"); span.appendChild(txt); main.appendChild(input); main.appendChild(span); } }
オブジェクトが存在するかどうかを判断するだけで十分です。 if (!document.getElementById("rad4")) ですが、jQuery では if (!$("#rad4")) は常に false と考えていましたが、そうではありません
。jQuery の場合。 $("") ラッパーでラップされると、それは null や未定義ではなくオブジェクトになるため、!$("#rad4")
常に false。正しいアプローチは次のとおりです
ラッパーにオブジェクトがない場合、長さは 0 になります。
$(function () { $(".domtree div:eq(6) input:eq(1)").click(function () { if ($("#rad4").length < 1) { $("<input type='radio' id='rad4'> <span>选择按钮4</span>").appendTo($("#radioContainer")); } } ) } )