使用jquery / javascript删除跨度

时间:2016-01-23 20:04:02

标签: javascript jquery

我试图替换一组span中的所有td元素。他们有这样的内容:

<span class='close_span'>
    <input type="button" class="close_pop_btn removebtn"/>
</span>

完整的td是这样的:

<td>
    <span class='close_span'>
        <input type="button" class="close_pop_btn removebtn"/>
    </span>
    <!-- other tags here -->
</td>

我想在所有tds中删除所有带有span类的close_span元素,并在jquery / javascript变量中获取结果字符串。那是可能的,如果是这样的话怎么样?

2 个答案:

答案 0 :(得分:1)

尝试在.end()附近使用.remove()document.find(),选择"table"。从此处可以选择使用tablehtml返回整个.get() .outerHTML;或者使用td

的所有html .find(table td).map(function() {return this.outerHTML}).get()

&#13;
&#13;
var tableHTML = $("table span").remove().end()
.find("table").get(0).outerHTML;

console.log(tableHTML)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<table>
  <tbody>
    <tr>
      <td>
        <span class='close_span'>
        <input type="button" class="close_pop_btn removebtn"/>
    </span>
        <!-- other tags here -->
        <div>div 1</div>
      </td>
    </tr>
        <tr>
      <td>
        <span class='close_span'>
        <input type="button" class="close_pop_btn removebtn"/>
    </span>
        <!-- other tags here -->
        <div>div 2</div>
      </td>
    </tr>
  </tbody>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您只想删除跨度后的td内容:

var tdsWithoutSpan = $('td')
  .find('> span.close_span')
  .remove()
  .end();

tdsWithoutSpan.each(function (index, td) {
  console.log(td);
});

但是如果你想要表的内容:

var table = $('table')
  .find('td > span.close_span')
  .remove()
  .end();

console.log(table.parent().html());