Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery语法未设置对象属性_Javascript_Jquery - Fatal编程技术网

Javascript jQuery语法未设置对象属性

Javascript jQuery语法未设置对象属性,javascript,jquery,Javascript,Jquery,我相信我的jQuery问题非常简单,这让我发疯,因为我无法理解它 我有一个具有属性内容的对象,我希望能够获取该对象,使用jQuery操作属性内容,然后使用jQuery创建的新值覆盖该值 例如: o.content = "<div><span>hello</span></div>"; $('div', o.content).addClass('test'); 此时,我希望o.content等于hello 我一辈子都搞不懂语法。非常感谢您的帮助。在o

我相信我的jQuery问题非常简单,这让我发疯,因为我无法理解它

我有一个具有属性内容的对象,我希望能够获取该对象,使用jQuery操作属性内容,然后使用jQuery创建的新值覆盖该值

例如:

o.content = "<div><span>hello</span></div>";
$('div', o.content).addClass('test');
此时,我希望o.content等于hello

我一辈子都搞不懂语法。非常感谢您的帮助。

在o.content中解析html,添加类,将解析后的html附加到新的中,并获取新div的html:

o.content = "<div><span>hello</span></div>";
var el = $(o.content).addClass('test');
o.content = $("<div>").append(el).html();
在o.content中解析html,添加类,将解析后的html附加到新的,并获取新div的html:

o.content = "<div><span>hello</span></div>";
var el = $(o.content).addClass('test');
o.content = $("<div>").append(el).html();

我认为你不能从这样的字符串中查找元素。。我宁愿像下面这样做

var content = "<span>hello</span>";
content = $('<div/>', {class: 'test'}).html(content)

演示:

我认为您无法从这样的字符串中查找元素。。我宁愿像下面这样做

var content = "<span>hello</span>";
content = $('<div/>', {class: 'test'}).html(content)

演示:

如果这是您想要的,这将给您一个字符串hello:

$(o.content).addClass('test').wrap('<div>').parent().html();

如果这是您想要的,这将为您提供一个字符串hello:

$(o.content).addClass('test').wrap('<div>').parent().html();
从上下文来看,上下文必须是

用作上下文的DOM元素、文档或jQuery

您的上下文o.content是一个字符串。此外,jQuery函数不能选择整个上下文,它只能选择该上下文中的元素

请尝试以下方法:

// make o.content a jquery element, not a string
o.content = $("<div><span>hello</span></div>");

// select on something inside the context (inside the div), not the div itself
$('span', o.content).addClass('test');
从上下文来看,上下文必须是

用作上下文的DOM元素、文档或jQuery

您的上下文o.content是一个字符串。此外,jQuery函数不能选择整个上下文,它只能选择该上下文中的元素

请尝试以下方法:

// make o.content a jquery element, not a string
o.content = $("<div><span>hello</span></div>");

// select on something inside the context (inside the div), not the div itself
$('span', o.content).addClass('test');
您想要以下内容

o.content = "<div><span>hello</span></div>";
// Create a jQuery object you can call addClass on
var docFragment = $(o.content);
docFragment.addClass('test');
// Since there's no outerHTML in jQuery, append it to another node
var wrapper = $('div');
docFragment.appendTo(wrapper);
// The HTML of the wrapper is the outerHTML of docFragment
console.log(wrapper.html()); // outputs <div class='test'><span>hello</span></div>
您想要以下内容

o.content = "<div><span>hello</span></div>";
// Create a jQuery object you can call addClass on
var docFragment = $(o.content);
docFragment.addClass('test');
// Since there's no outerHTML in jQuery, append it to another node
var wrapper = $('div');
docFragment.appendTo(wrapper);
// The HTML of the wrapper is the outerHTML of docFragment
console.log(wrapper.html()); // outputs <div class='test'><span>hello</span></div>

为什么不在一行中完成这一切:

var o = {};
o.content = $( "<div></div>" )     // create element
    .addClass('test')              // add class
    .html( '<span>hello</span>' ); // append content

小提琴:

为什么不在一行中完成这一切:

var o = {};
o.content = $( "<div></div>" )     // create element
    .addClass('test')              // add class
    .html( '<span>hello</span>' ); // append content
小提琴:

o、 在本例中,内容是一个jQuery对象,而不仅仅是一个字符串。下面是一个关于JSFIDLE的演示:


o、 在本例中,内容是一个jQuery对象,而不仅仅是一个字符串。这里有一个关于JSFIDLE的演示:

很难告诉您想要做什么,请重新措辞。您认为$'div',param的第二个参数是什么?看到了吗,你想要一个HTML字符串或jQuery对象?很难说你想要做什么,请重新措辞。您认为$'div',param的第二个参数是什么?看到了吗,你想要一个HTML字符串或jQuery对象?这可能是OP想要的,你有水晶球吗?@JuanMendes-他说他想让o.content从hello改为hello。这样就可以了。也就是说,假设他想要的是字符串而不是jQuery对象。如果问题被解决了,我们会发现的。我只是很惊讶你是如何从问题中发现的,现在它被重新措辞了,更容易看出这可能是OP想要的,你有水晶球吗?@JuanMendes-他说他希望o.content从hello变为hello。这样就可以了。也就是说,假设他想要的是字符串而不是jQuery对象。如果问题被解决了,我们会发现的。我只是很惊讶你是如何从这个问题中发现的,现在它被重新措辞了,更容易看到它