我如何选择JavaScript“;Id”;通过变量
How can I select JavaScript "Id" by var?
我只想通过var设置getElementById(它必须是自动的,因为我有多个这个范围的输入(亮度、对比度、锐化等)。我该怎么做?
function showVal(value, id) {
var spanId = "#" + id + "Id";
document.getElementById("'"" + spanId + "'"").innerHTML = value;
}
<div class="row" style="display: inline-block; width: 45%; margin: 0px 5px 5px 5px;">
<div class="col-sm-5" style="padding: 2px;">
<label class="control-label" style="float: left">Jasność:</label>
<span class="filterValue" id="brightnessId">0</span>
</div>
<div class="col-sm-7" style="padding: 2px;">
<input id="brightness" type="range" min="-100" max="100" step="1" value="0" data-filter="brightness" onchange="showVal(this.value, this.id)">
</div>
</div>
看起来您混淆了jQuery和vanilla JavaScript。你应该能够简单地使用这个:
function showVal(value, id) {
document.getElementById(id + "Id").innerHTML = value;
}
您不需要使用#
,也不需要将其包含在""
之间
function showVal(value, id) {
var spanId = id + "Id";
document.getElementById(spanId).innerHTML = value;
}
以下是的工作示例
你也可以这样写代码:
function showVal(obj) {
var spanId = obj.id + "Id";
document.getElementById(spanId).innerHTML = obj.value;
}
并且在HTML 中仅使用this
<input id="brightness" type="range" min="-100" max="100" step="1" value="0" data-filter="brightness" onchange="showVal(this)">
由于您在标记中包含了jQuery
,我会使用它。我也会使用mousemove
而不是change
,这样您的输出元素就会实时更新:
输入字段:
<input id="brightness" type="range" min="-100" max="100" step="1" value="0" data-filter="brightness">
jQuery:
$('#brightness').mousemove(function(){
$('#'+$(this).attr('id')+'Id').text($(this).val());
});
演示
OR,因为您的输入字段具有data-filter="..."
属性,并且您希望有更多的字段实际执行相同的功能(对比度、清晰度等),所以我会删除id
,添加class
作为选择器,然后使用此data-filter
属性来匹配输出元素(span
)。这就是整个过程的简单和自动化:
<input class="settings" type="range" min="-100" max="100" step="1" value="0" data-filter="#brightness">
<input class="settings" type="range" min="-100" max="100" step="1" value="0" data-filter="#contrast">
<input class="settings" type="range" min="-100" max="100" step="1" value="0" data-filter="#sharpness">
jQuery(针对所有这些字段):
$('.settings').mousemove(function(){
$($(this).data('filter')).text($(this).val());
});
DEMO
相关文章:
- 如何检查名为id的变量属性
- 为两个ID设置一个变量的正确语法
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- PHP会话ID变量与AJAX一起返回
- 可以't将带有变量的id添加到类中
- Jquery按id选择变量
- 除了类、id 和文本之外,我还如何在 jQuery 中的元素中传递变量
- 为什么我们被教导将document.getElementById(“id”)分配给一个变量,然后将该变量与属性一起使用
- 如何在Javascript中将来自另一个页面的ID引用为变量
- PHP post-id无法使用Javascript变量作为id
- 将递增变量添加到Html Select的Id中
- JQuery通过变量标识元素id:多个表行
- 如果字符串保存在变量中,如何查找包含字符串的ID
- jquery没有't从DIV数据id中获取PHP变量值,只输出变量名
- 如何从包含HTML代码和许多UL标签及其ID的JavaScript变量A中获取
- ID
- 基于变量创建json对象id
- 如何使用“属性以选择器开头”中的 ID 变量来选择 jQuery 中的元素
- 将Form ID变量传递给javascript中的echo函数
- 传递会话ID变量,如果内联JS函数允许它在其他地方使用
- 遍历对象以查找两个ID变量的匹配项