0
var newHead = '<div id="head'+text+'"></div>';
var header = "head"+text;
if (document.getElementById(header) == undefined) {
        //alert(document.getElementById("head"+text));
        $("#result-job").append(newHead);
        var result = '<div id="div' + dataSplit[0] + '"><input type="radio" checked="checked" class="choosenJob" name="rdb_job" value="' + dataSplit[0] + '" id="' + dataSplit[0] + '" /><label for="' + dataSplit[0] + '">' + dataSplit[1] + '</label><br /></div>';
        $("div#" + header).append(result);
    } else {
        var result = '<div id="div' + dataSplit[0] + '"><input type="radio" checked="checked" class="choosenJob" name="rdb_job" value="' + dataSplit[0] + '" id="' + dataSplit[0] + '" /><label for="' + dataSplit[0] + '">' + dataSplit[1] + '</label><br /></div>';
        $("div#" + header).append(result);
    }

それらのスクリプトはうまく実行できますか? 結果の div に新しい要素 (div) を追加したいのですが、スクリプトが機能しませんでした

フィドルシミュレーション: http://jsfiddle.net/86kH4/5/

4

6 に答える 6

2

交換

if (document.getElementById(header) == undefined) {

if ($("#" + header).length == 0) {
于 2012-07-30T09:43:12.213 に答える
0

ここでは、たとえば「ライブ」の jquery 関数を使用する必要があります。

$("div#" + header).live().append(result);

この関数は、作成された要素を追加する要素が追加されたときに使用されます~~ 役に立てば幸いです~~~

于 2012-07-30T09:51:34.970 に答える
0

ID の前後にいくつかの引用符を追加する必要があります。これで問題なく動作します。また、を削除し== undefined、Javascript だけでチェックさせます。

if (document.getElementById("header")) {
   /* treatment */
} else {
   /* treatment */
}
于 2012-07-30T09:30:58.127 に答える
0

http://jsfiddle.net/Q98mv/ - スニペットをこれと比較してください。どこに問題があったかがわかります

$('#chk1').click(function(){
    var ada = "asd";  //ada here will be my dynamic parameters                 
    var neww= '<div id="baru'+ada+'"></div>';

    if($('#baru'+ada).length==0){
        $("#asd").append(neww);
    }else{
        $("#baru"+ada).append("Hellow<br>");
    }
})​;
于 2012-07-30T09:46:06.103 に答える
0

私のコメントで述べたように、フィドルには構文エラーがあるため、「機能しません」。エラーを修正すると、期待どおりの動作が得られます: http://jsfiddle.net/fkling/86kH4/28/


はい、使用できます

document.getElementById(header) == undefined

ID が含まれる要素がheader存在するかどうかをテストします。

そのような要素が存在しない場合は、getElementByIdを返しnullnull == undefinedisを返しtrueます。それを念頭に置いて、以下と比較した場合はさらに正確になりますnull

document.getElementById(header) === null

そうは言っても、あなたはjQueryを使用しているので、一貫性を保ち、プレーンなDOMメソッドと混合しないようにします. すべての jQuery オブジェクトには、length選択された要素の数を含むプロパティがあります。したがって、同等の jQuery は次のようになります。

$('#' + header).length === 0
于 2012-07-30T10:02:31.697 に答える
-1

if (document.getElementById(header) == undefined) {これを交換するとif ($('#header') == undefined) {正常に動作する場合があります。ちなみに、コードのヘッダーの引用符を見逃しました。

于 2012-07-30T09:33:20.053 に答える