怎样对一个包含html的变量进行各种添加删除等操作?

js jquery by Xudong Zhang @ 2015-10-15 21:26:13

如题,当我用ajax获取一个html类型的字符串,保存在data变量里面,如果我想对他进行一些元素查询添加删除等操作,该怎么弄?

注意我并没有将data添加到DOM里,我需要先修改然后再添加。

给个简单的例子:

$.get('/ajax/test', function(data) {
    //manipulate the data
    newdata = data.$('div').append('<h3>example</h3>');
    $('#test').append(newdata);
});

newdata那行该怎么写呢?


$.get(‘/ajax/test’, function(data) { tmp = $(‘html’).html(data); newdata = $(‘div’, tmp).append(’

example

’); $(‘#test’).append(newdata); });

假设data是一个类html的字符串,你可以通过$('selector', $(data)).method()来进行各种jquery操作。

举个栗子
var test="<div><p>test</p></div>";
var tmp = $('<html>').html(test);
console.log($('div', tmp).html());

或者直接这样

var test="<div><p>test</p></div>";
console.log($('div', $(test)).html());
注意

如果字符串是一个类xml(html)的结构,直接$(test)这样就可以;

如果是'<li>test1</li><li>test2<li>'这种的话,必须通过如下方式先变成类html结构

var tmp = $('<html>').html(test);
OR
var tmp = $('<div>').html(test);

总之需要一个tag将它包起来。

DOM7

对于我个人比较喜欢的framework7, 它的DOM7操作方式如下:

var $$ = Dom7;
var test="<div><p>test</p></div>";
var tmp = $$(test);
console.log($$('div', tmp[0]).html());
by Xudong Zhang @2015-10-15 21:52:02.139 +0800 CST


我来回答

Markdown格式技巧

  • 行尾添加2个空格或者添加一个空行就能换行
  • 斜体: *hello* 或者 _world_
  • 加粗: **hello** 或者 __world__
  • 代码块: 添加空行,然后代码缩进4个空格
  • 特殊字符: 用\避免转义;\*就是*本身
  • python: `__name__`可以以代码形式输出__name__
  • 一个简单的例子

切换到移动版