对于你们中的大多数人来说,这将是一件轻而易举的事,但我无法追踪或思考如何解决我遇到的这个问题。看看这里
在这个函数中,它应该编辑输入的值并且只发送到那个输入,它在我的代码中el
是指所有被点击的元素。
我认为代码解释了我的角度,在这里粘贴一些 jQuery,如果您需要更多内容,请询问。
var app = {
sendEditDataToApp: function (el) {
//Type of element to send
var elType = jQuery(el).prev().attr('name')
//Element data
var elVal = jQuery(el).prev().val()
//Match the edit element with the element constructor
var inConstructor = jQuery(el).closest('.display-data').prev()
inConstructor.addClass('opened')
//Send to app
jQuery('.builder .send').click(function () {
//Set new data input value
jQuery(el).parent().find('input').val(inConstructor.find(this).prev().val())
alert(inConstructor.find(this).prev().val())
inConstructor.removeClass('opened')
});
}
}
jQuery('.open').click(function(e) {
e.preventDefault()
app.sendEditDataToApp(this)
})
HTML:
<div class="builder">
<input value="" />
<button class="send">Send</button>
</div>
<div class="display-data">
<div class="row">
<input name="html" value="input 1" />
<button class="open">Open</button>
</div>
<div class="row">
<input name="html" value="input 2" />
<button class="open">Open</button>
</div>
<div class="row">
<input name="html" value="input 3" />
<button class="open">Open</button>
</div>
</div>
我的代码正在获取.val()
输入,我不确定为什么当我想使用它时它会添加到所有输入中,this
并且el
只会引用点击来自的特定输入。
请注意,我重写了这段代码以适应更好的小提琴,它基于我真实代码的逻辑,一些是从我的真实代码中复制和粘贴的,大部分是重新编辑的。主要目标是编辑打开点击来自的特定输入。
我会说主要关注的是jQuery(el).parent().find('input').val(inConstructor.find(this).prev().val())
(警告:这可能是一个不正确的陈述,我的逻辑在这里)el
指的是第一个元素.open
,并且this
指的是.send
. 我找到了.open
点击来自的特定输入,然后将该值设置为 inConstructor
点击时的值内的任何值this
.send
。所以对我来说,它应该获取输入的值并将其放在特定的jQuery(el).parent().find('input')
<- 不是所有已单击的值中。