2016-07-01 149 views
1

我有這樣的代碼:jQuery的不追加整個生成的HTML(td標籤)

var priceTextField = $("<td>").append(
    $("<input>") 
    .addClass("form-control input-sm") 
    .attr("type", "text") 
    .attr("placeholder", "Input something or delete me!") 
); 

而且通過附加當...

var priceDataRow = $("<tr>").append(
    priceTextField.clone().find("input").addClass("text-quantity") 
).append(
    priceTextField.clone().find("input").addClass("text-price") 
).append(
    $("<td>").append(
    $("<button>") 
    .addClass("btn btn-danger btn-sm btn-block delete-btn") 
    .attr("type", "button") 
    .text("Delete") 
) 
); 

從priceTextField克隆的<td>包裝不出現。但是,按鈕<td>包裝。

輸出示例:

<tr> 
    <input class="form-control input-sm text-quantity" type="text" placeholder="Input something or delete me!" value="444"> 
    <input class="form-control input-sm text-price" type="text" placeholder="Input something or delete me!" value="44"> 
    <td> 
    <button class="btn btn-danger btn-sm btn-block delete-btn" type="button">Delete</button> 
    </td> 
</tr> 

我錯過了一些東西明顯?如果有人能夠指引我,我會感激不盡。

乾杯

+0

我認爲,要附加輸入字段,另一個輸入字段中。那麼這將如何工作? – Samir

+0

對不起@薩米爾,我試圖儘可能最好地格式化代碼,但我確信我已經正確完成了'append()。第一個代碼塊有效地將輸入包裝在'​​'標籤中,然後第二個代碼塊依次添加兩個克隆? – Nunnsy

回答

0

當你這樣做:priceTextField.clone().find("input").addClass("text-quantity")您本人的輸入字段和附加這一點。不是<td>。因爲使用find()

https://api.jquery.com/find/

描述:獲取後裔在當前組的 匹配的元素的每個元件中,通過選擇器,jQuery對象,或元件的過濾

你需要的是end(),這樣你可以選擇<td>本身。

https://api.jquery.com/end/

描述:結束最近濾波操作在當前 鏈和匹配的元素返回到其先前的狀態。

+0

啊,是的,謝謝!我明白。我只是測試看到'end()'將它返回到'clone()'方法而不是原始變量,因爲它不在文檔中。所以完美的作品! – Nunnsy

0

使用.end()

priceTextField.clone().find("input").addClass("text-quantity").end() 
+0

使用過這個 - 很完美。謝謝! – Nunnsy

0

你只追加投入要素嘗試。這是jQuery的工作原理:

第一個示例返回您之前創建的「td」的克隆。

priceTextField.clone() 

但是,當你這樣做時,「input」元素將被返回。

priceTextField.clone().find("input") 

你需要做的是在一個變量第一像這樣保存的:

var priceDataRow = $("<tr>"); 
var clonedTd = priceTextField.clone(); 
clonedTd.find("input").addClass("text-quantity"); 
$(priceDataRow).append(clonedTd); 
+0

我最終使用@ himanshu-tyagi的解決方案,但感謝您的回覆! – Nunnsy

+0

@Nunnsy那麼,我必須同意他們的解決方案更好:) – Kamelkent