2012-03-09 45 views
1

我不確定編寫代碼的正確方式是什麼,或者它甚至是可能的jQuery格式。jquery - 包含jquery對象作爲文本或html屬性的語法

for(i=0; i<10; i++) { 
    var inner = $('<div/>', {text: 'it works'}); 
    var x = ' xyz '; 

    var row = $('<div/>', { 
    id: 'foo', 
    'class': 'abc', 
    html: 'test'+ x + inner.text(), 
    css: {'padding-left': '5px'} 
    }); 

    row.appendTo('body'); 
} 

輸出是測試XYZ的翻譯:

什麼是顯示內部變量,以便正確的輸出是「測試XYZ它的工作原理」正確的語法?

我知道它會使用inner.appendTo(row)

次要問題的工作:如果我能得到的代碼工作,這將是更快? appendTo或用變量定義html。

TIA

+0

嘗試'html:'test'+ x + inner.html()'或'html:'test'+ x + inner.text()' 。這是在黑暗中的全面鏡頭,只是fyi。 :) – 2012-03-09 04:12:10

+0

它的工作原理,感謝艾略特。 – Jamex 2012-03-09 04:20:50

+0

太棒了,我會把它作爲答案讓你接受。 – 2012-03-09 04:23:52

回答

1

你會想html: 'test' + x + inner.html();html: 'test' + x + inner.text();

+0

感謝Elliot,你知道這個方法是否比追加方法快? – Jamex 2012-03-09 04:45:01

+0

我不知道,對不起。 – 2012-03-09 04:45:29

+0

艾略特的方法似乎更快:http://jsperf.com/elliot-vs-chris-n/2 – 2012-03-09 05:17:44

1

你想對移動內部div到含(row)DIV?如果是這樣,你會想要做到以下幾點:

$(function() { 
    for(i=0; i<10; i++) { 
    var inner = $('<div/>', { 
    text: 'it works' 
    }); 

    var x = ' xyz '; 

    var row = $('<div/>', { 
    id: 'foo', 
    'class': 'abc', 
    html: 'test'+ x, 
    css: { 
    'padding-left': '5px' 
     } 
    }).append(inner).appendTo('body'); 

    }//end for 
}); 
+0

謝謝克里斯,看艾略特的答案。你的追加方法也可以工作,我只是想知道如何以其他方式做到這一點。順便說一句,你知道如果追加更快的jquery執行比艾略特的方法? – Jamex 2012-03-09 04:43:24