2014-12-02 98 views
1

所以,我將一個HTML代碼轉換爲一個jQuery對象,我想稍微編輯它。 在這種情況下,我只是想從內容中刪除圖像。出於某種原因,它除去了更多。jQuery對象刪除HTML標記

檢查下面的HTML標記,你也會看到tr也隨着第二個tr的內容被刪除。

jQuery的

var getHTML = ''; 

$('.option-'+ optionNumber).each(function(){ //optionNumber in this very example is 0 and thus will select the below trs with class option-0 
    getHTML += $(this)[0].outerHTML; 
    }); 

var newHTML = $(getHTML); 
newHTML.find('img').remove(); 

原始的HTML標記:

<tr class="option-0"> 
    <td> 
     1 
    </td> 
    <td> 
     Simple 
    </td> 
    <td> 
     <img alt="" src="gfx/man_icon.gif"> 
    </td> 
    <td id="thisOptionPrice0" rowspan="2"> 
     $450.00 
    </td> 
    <td id="thisSelectionOption0" rowspan="2" style="width: 100px; text-align: center; vertical-align: middle;"> 
     <div data-role="fieldcontain"> 
      <fieldset data-role="controlgroup"> 
       <div class="ui-radio"> 
        <label class="chooseLabel ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off" for="packageOption-0">Elegir</label> 
        <input data-cacheval="false" name="selectReservation" data-optionnumber="0" class="selectReservationOption" onclick="selectPackageOption(0); return false;" id="packageOption-0" value="1|[email protected]|1" type="radio"> 
       </div> 
      </fieldset> 
     </div> 
    </td> 
</tr> 
<tr class="option-0"> 
    <td> 
     1 
    </td> 
    <td> 
     Doble 
    </td> 
    <td> 
     <img alt="" src="gfx/man_icon.gif"> 
    </td> 
</tr> 

結果:

<td> 
    1 
</td> 
<td> 
Doble 
</td> 
<td></td> 
<td id="thisOptionPrice0" rowspan="1"> 
    $300.00 
</td> 
<td id="thisSelectionOption0" rowspan="1"> 
    <div data-role="fieldcontain"> 
     <fieldset data-role="controlgroup"> 
      <div class="ui-radio"> 
       <label class="chooseLabel ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off" for="packageOption-0">Elegir</label> 
       <input data-cacheval="false" name="selectReservation" data-optionnumber="0" class="selectReservationOption" onclick="selectPackageOption(0); return false;" id="packageOption-0" value="2|1" type="radio"> 
      </div> 
     </fieldset> 
    </div> 
</td> 

缺少什麼我在這裏? 在此先感謝

編輯

做它像這樣看來,以獲得第一TR正確的..但忘掉第二個: VAR getHTML =「」;

$('.option-'+ optionNumber).each(function(){ //optionNumber in this very example is 0 and thus will select the below trs with class option-0 
    getHTML += '<table>'+ $(this)[0].outerHTML +'</table>; 
    }); 

這是怎麼回事?

解決 - 這奏效了

var getHTML = ''; 
var finalHTML = ''; 
$('.option-'+ optionNumber).each(function(){ 
    getHTML = '<tbody>'+ $(this)[0].outerHTML +'</tbody>'; 
    var newHTML = $(getHTML); 

    newHTML.find('img').remove(); 
    finalHTML += newHTML.html(); 
    }); 

謝謝大家的努力。

回答

0

下面做了什麼?

$(".option0 img").remove() 

(嘗試)

+0

那麼,這也將從原始的HTML片段中刪除圖像。我不想那樣。我想從我的對象所持有的HTML中刪除圖像;) – entiendoNull 2014-12-02 15:16:58

0

嘗試......

var _temp = $("table").clone(); 

$(_temp).find("tr img").remove() 

$("body").append(_temp) 

Check on fiddle

+0

不,它確實從原始HTML片段中刪除圖像。我不想那樣。我想進入我的包含那件作品的對象,並刪除它們,並創建一個新的HTML :) :) – entiendoNull 2014-12-02 15:23:38

+0

這將刪除所有圖像從臨時變量, – 2014-12-02 15:26:17

+0

所以,亞倫的建議不起作用? – Veverke 2014-12-02 15:41:53

0

要在自己的網頁中刪除所有<img>的,乾脆做$("img").remove()

工作代碼片段:

$("img").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<tr class="option-0"> 
 
    <td> 
 
    1 
 
    </td> 
 
    <td> 
 
    Simple 
 
    </td> 
 
    <td> 
 
    <img alt="" src="gfx/man_icon.gif" > 
 
    </td> 
 
    <td id="thisOptionPrice0" rowspan="2"> 
 
    $450.00 
 
    </td> 
 
    <td id="thisSelectionOption0" rowspan="2" style="width: 100px; text-align: center; vertical-align: middle;"> 
 
    <div data-role="fieldcontain"> 
 
     <fieldset data-role="controlgroup"> 
 
     <div class="ui-radio"> 
 
      <label class="chooseLabel ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off" for="packageOption-0">Elegir</label> 
 
      <input data-cacheval="false" name="selectReservation" data-optionnumber="0" class="selectReservationOption" onclick="selectPackageOption(0); return false;" id="packageOption-0" value="1|[email protected]|1" type="radio"> 
 
     </div> 
 
     </fieldset> 
 
    </div> 
 
    </td> 
 
</tr> 
 
<tr class="option-0"> 
 
    <td> 
 
    1 
 
    </td> 
 
    <td> 
 
    Doble 
 
    </td> 
 
    <td> 
 
    <img alt="" src="gfx/man_icon.gif"> 
 
    </td> 
 
</tr>

+0

這完全不是我想要做的;)我想刪除僅在我的對象newHTML存儲的標記內部的圖像:) – entiendoNull 2014-12-02 15:33:45

1

要anwser的questuion '這是怎麼回事' ......

當您創建這樣的jQuery對象:var newHTML = $('<tr>one</tr><tr>two</tr>'),它不能創建正確的html元素。

您應該將數組傳遞給jquery對象,或者將您的<tr>s包裝在表中以將其呈現爲正確的表對象。

var newHTML = $("<table>"+getHTML+"</table>"); 
newHTML.find('img').remove(); 
+0

這是解決我的問題的最接近的答案。給了我一些想法,所以一個。 – entiendoNull 2014-12-02 16:01:38

+2

也更好地使'img's和'inputs'標籤關閉'​​',否則這可能會造成麻煩有時 – paulitto 2014-12-02 16:05:07

+0

Uhuh,他們是!不知道爲什麼他們顯示爲未在我的控制檯日誌中關閉。 – entiendoNull 2014-12-02 16:06:15