2012-09-11 58 views
1

嗯 我在這裏看到的所有答案表明,這應該工作,但是......構建動態的div jQuery中和javascript

是...相當於

var qnDivName = "qnDiv" + i; 
    var currentQnDiv = document.createElement("div"); 
    var qnDivId = document.createAttribute("id"); 
    qnDivId.nodeValue = qnDivName; 
    currentQnDiv.setAttributeNode(qnDivId); 
    currentQnDiv.className = "questionContainer"; 

...

var currentQnDiv = $("<div/>", { 
     "class": "questionContainer", 
     id: "qnDiv" + i 
    }); 
    alert("qndiv class: " + currentQnDiv.className); 

警報提供'未定義'。 「我」來自for循環。我動態創建的div進一步連接到一個文件下來的網頁...

testDiv.appendChild(currentQnDiv);  
    } //end for loop 

普通JS的作品,但jQuery的不。我有其他的jQuery在調用函數中工作,所以...

任何想法?

+0

哇!那很快。感謝您的答案。得到(0)確實返回所需的「questionContainer」,但是,我仍然有同樣的問題。上面的js工作,jquery沒有。是var currentQnDiv = ...真的引用一個div嗎?後來的代碼想要向其添加圖像,然後如圖所示,將currentQnDiv添加到其父代testDiv中。 – grooble

+0

Got it!將其更改爲:var currentQnJQ =(參見上文),然後currentQnDiv = currentQnJQ [0];謝謝大家。在我將300行js文件減少到大約100個jquery的路上,我想...... – grooble

回答

2

使用

alert("qndiv class: " + currentQnDiv.get(0).className); 

currentQnDiv對象是一個jQuery集合,而不是一個基本的DOM對象。

1

className不是有效的jQuery屬性。你應該使用currentQnDiv[0].className而不是

0

這個班真的應該在「」嗎?

var currentQnDiv = $("<div/>", { 
    class: "questionContainer", 
    id: "qnDiv" + i 
}); 

只是我的想法,沒有足夠的時間來測試它自己。

1
$("<div/>").addClass("questionContainer") 
      .attr("qnDiv" + i).appendTo("body"); 

body可以用要添加此div的元素的id替換。

1

否則

var currentQnDiv = $("<div/>"); 
currentQnDiv.addClass("questionContainer"); 
currentQnDiv.attr("qnDiv" + i).appendTo("body");