来自具有类.edit-links
的字段我可以检索值,但$(this).next(".edit-url").val();
仅返回第一个找到的元素,然后仅返回未定义的值。在控制台中,我可以看到“this”按预期定位了第一个元素,但第二个.edit-url未找到并返回prevObject。每个循环中的第二个元素返回undefined
$('#edit').click(function() {
edit.revertLink();
});
var edit = {};
edit.revertLink = function() {
$('.edit-link').each(function(index) {
var currentName = $(this).val();
var url = $(this).attr('data-tempurl');
var meta = $(this).attr('data-meta');
//edit.changeLiOrgname(this, currentName);
if (meta === "external") {
//url = $(this).next(".edit-url").val();
currentName = $(this).next(".edit-url").val();
//edit.changeLiOrgURL(this, url);
$(".edit-url").remove();
}
var linkStr = [
'<a href="' + url + '" class="aktiv">',
'' + currentName + '',
'<span class="type float-r">',
'' + meta + '',
'</span>',
'</a>'
];
$(".removeBtn").remove();
$(this).replaceWith(linkStr.join(''));
});
}
<button id="edit">Edit</button>
<li data-identifier="4.3e43f44714869abce3fabc5">
<input class="edit-link" data-meta="internal" data-tempurl="/internal-page.html" type="text" value="Stöd">
</li>
<li>
<input class="edit-link" data-meta="external" type="text" value="Link">
<input class="edit-url" type="text" data-tempurl="www.link.se" value="www.link.se">
</li>
<li>
<input class="edit-link" data-meta="external" type="text" value="link2">
<input class="edit-url" type="text" data-tempurl="www.link2.se" value="www.link2.se">
</li>
<li>
<input class="edit-link" data-meta="external" type="text" value="link3">
<input class="edit-url" type="text" data-tempurl="www.lin3k.se" value="www.link3.se">
</li>
http://codepen.io/stuffoak/pen/zvjOgM?editors=101 – maho