在新的JQuery对象内部迭代
iterate inside a new JQuery object
我需要传递一些html代码作为参数,但是,在传递之前,我需要更改一些src属性值。
我不能使用lastIndexOf或其中任何一个来修改html值,因为我不知道src将具有哪个值。
然后,我要做的是创建一个包含html的对象,然后只更改该对象。我不想更改实际的网页。
这可能吗??
我首先做的是:
$('[myImages]').each(function() {
var urlImg = "../tmpFiles/fileName" + counter;
$(this).attr('src', urlImg);
counter++;
});
最后,我得到了想要的代码:
myformData = { theChartCode: $('#TheDivContainingTheHTML').html() }
然而,这实际上改变了网页上的图像来源,我不想这样做
然后我想我可以用html创建一个JQuery对象,这样我就可以像这样修改这个对象:
var $jQueryObject = $($.parseHTML($('#TheDivContainingTheHTML').html()));
但现在,我不知道如何在该对象中迭代,以更改所需图像的src属性值。
任何帮助都将不胜感激;(
有几种方法可以做到这一点。首先是创建目标元素的克隆,并在飞行中使用相同的方法。你可以这样做:
var Elem=$('#TheDivContainingTheHTML'(.clone((;
现在,您可以随心所欲地进行迭代、更改、插入、移除等操作。
var allImages=$(Elem(.childs("img"(;
非常感谢!
根据您想要更改对象的时间,解决方案会有所不同。让我们假设您想在单击页面中的另一个元素后更改它。你的代码看起来是这样的:
var clonedHTML;
$('#clickable-element').click(function() {
var $originalHTML = $(this).find('.html-block');
var $cloneHTML = $originalHTML.clone();
$cloneHTML.find('.my-image').attr('src', 'newSrcValue');
clonedHTML = $cloneHTML.clone();
return false; //Prevents click to be propagated
});
//Now you can use `clonedHTML`
这里的关键是克隆方法:http://api.jquery.com/clone/.
您可以clone
元素:
var outerHTML = $collection.clone().attr('src', function(index) {
return "../tmpFiles/fileName" + index;
}).wrapAll('<div/>').parent().html();
您也可以使用map
方法:
var arr = $collection.map(function(i) {
return $(this).clone().attr('src', '...').prop('outerHTML');
}).get();
相关文章:
- 如何在javascript中迭代数字列表
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- 基于使用angular在下拉列表中选择的对象,迭代对象内部的对象
- 为什么数组在对象内部迭代对象时存储重复值
- JavaScript如何在内部迭代对象键
- 迭代对象内部的对象
- 调用ng-erepeat内部的API函数,提示错误.达到10$digest()迭代.在angularjs中中止
- 传递迭代变量以单击循环内部的事件
- 如何根据rails变量在respons_to内部进行迭代
- 对象文本内部的工厂模式,以实现可迭代性和反射性
- 迭代一个3级嵌套数组并选择内部数组的值
- 由生成器内部使用的迭代器回调产生
- 需要循环两个循环,并在内部循环中使用延迟迭代
- 通过迭代JSON对象并只获取其内部数组的1来创建新数组
- 调用内部异步回调后迭代for循环
- 在新的JQuery对象内部迭代
- jQuery 从子元素迭代内部子元素
- 从模板Meteor访问和迭代内部对象集合
- 用于Javascript变量(Django)内部的循环迭代