当您拨打.html()
时,您只能获取内容,而不是.agenda-rename
。所以如果input
是.agenda-rename
的直接子,那么.find()
将无法找到它。
也许只是为了更好地做没有.html()
电话:
var testhtml = $('.agenda-rename').clone(); // or .clone(true)
console.log($('input',testhtml).attr('name'));
现在你有.agenda-rename
元素(一个或多个),你就可以搜索嵌套在它/它们的元素。
编辑:基于评论,OP不希望修改原始。因此,可以使用.clone()
。上面的答案已经过编辑以反映变化。
如果要保留事件,请使用.clone(true)
。
编辑:原因$('input',testhtml)
和$(testhtml).find('input')
给出相同的结果是,他们实际上是一回事。
jQuery将第一个版本转换为第二个后台。因此,使用第二个比第一个更有效率。
这是jQuery生成开关的代码(在运行一系列其他测试以确定它通过后)。
http://github.com/jquery/jquery/blob/master/src/core.js#L150
不会这样修改$('。agenda-rename')?我想保留它,而不是修改它。我试图创建内联模板基本上,我克隆,修改,然后显示在这种模式类型的界面。 – 2010-08-17 19:16:59
@Oscar - 如果你不想修改它,你需要'.clone()'它。如果有附加的事件要保留,请调用'.clone(true)'。我会更新。 – user113716 2010-08-17 19:19:11
@patrick dw:你说的对,我想,删除:) – Sarfraz 2010-08-17 19:22:14