将 javascript 函数应用于相同的 id
Apply javascript function to same ids
我只想问一下,如果我们有多个具有相同ID的div,我们如何使用javascript不显示它们?
我试过了:
<script>
function filterfunc() {
if(document.getElementById('filter_deductible').value == 'id_50'){
document.getElementById('id_0').style.display = 'none';
document.getElementById('id_50').style.display = 'block';
}
}
</script>
这是我具有相同 id 的 htmldiv:
<div id="id_0">0</div>
<div id="id_0">0</div>
<div id="id_50">50</div>
但它只隐藏了一个 id id_0div,而不是所有div 都有id_0
请提出任何建议
Id 必须是唯一的,你应该使用这样的类,
<div class="id_0">0</div>
<div class="id_0">0</div>
<div class="id_50">50</div>
并隐藏所有id_0
使用
function filterfunc() {
if($('#filter_deductible').val() == 'id_50'){
$('div.id_0').hide();
$('div.id_50').show();
}
}
使用 jQuery 很简单,比如
.HTML
<select name="filter_deductible" id="filter_deductible">
<option value="id_0">0</option>
<option value="id_50">50</option>
</select>
<div id="id_0">0</div>
<div id="id_0">0</div>
<div id="id_50">50</div>
jQuery
$("#filter_deductible").change(function(){
if($(this).val()=="id_50")
{
$('[id="id_0"]').hide();
}
});
演示
使用一个类,以防有多个元素。或者使用不同的 ID。
ID 应该是唯一的。
<script>
function filterfunc() {
if(document.getElementById('filter_deductible').value == 'id_50'){
$('.id_0').css("display","none")
$('.id_50').css("display","block")
}
}
</script>
<div class="id_0">0</div>
<div class="id_0">0</div>
<div class="id_50">50</div>
或
<script>
function filterfunc() {
if(document.getElementById('filter_deductible').value == 'id_50'){
$('.id_0').hide()
$('.id_50').css("display","block")
}
}
</script>
<div class="id_0">0</div>
<div class="id_0">0</div>
<div class="id_50">50</div>
不要这样做。具有相同 id 的多个元素会导致未定义的行为。如果需要将信息附加到圆顶节点,请使用数据属性或类。注意到单数形式有多getElementById
吗?它只期望选择并返回一个元素。
话虽如此,您可能可以侥幸逃脱
document.querySelectorAll("#id_0")
如果你想在DOM元素上使用javascript函数,你必须使用class not id属性。
id 属性在整个 HTML 文档中是唯一的。
尝试使用 jQuery。
$.(document).ready(function(){
$("#filter_deductible").change(function(){
var $this = $(this); //instance of element where was changed value
if($this.val() == 'id_50'){
$(".id_0").hide();
$(".id_50").show();
}
});
});
您的文档 HTML 应该看起来像。
<div class="id_0">0</div>
<div class="id_0">0</div>
<div class="id_50">50</div>
仅当您在标记中包含 jQuery 库时,这才有效。而你的 dom 元素 #filter_deductible 允许更改事件触发器。
希望我能帮到你
在这种情况下使用类 ID 是唯一的。
<div class="zero">0</div>
<div class="zero">0</div>
<div class="class_50">50</div>
你可以使用 jQuery:
$('.zero').hide();
$('.class_50').show();
HTML 规范要求 ID 属性在页面中是唯一的:
如果你想让几个元素具有相同的 ID,你的代码将不起作用,因为方法 getElementByID 只返回一个值,并且 ID 必须是唯一的。如果您有两个具有相同值的 ID,那么您的 HTML 无效。
你要做的是使用div class="id_0" 并使用方法 getElementsByClassName,因为这会返回一个元素数组
function filterFunc() {
var n = document.getElementsByClassName("id_0");
var a = [];
var i;
while(n) {
// Do whatever you want to do with the Element
// This returns as many Elements that exist with this class name so `enter code here`you can set each value as visible.
}
}
- 将函数的上下文应用于javascript变量
- 将CSS应用于printWindow.print();在Javascript中
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- $scope.apply()何时应用于angular
- Javascript非常简单:'阅读更多''显示较少'应用于Wordpress的功能
- 尝试应用于<tr>在ng单击中
- 如何将javascript仅应用于1个表单中的2个表单提交按钮中的1个
- 将脚本应用于Angular 2上的输入
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何将参数应用于String.prototype.format函数
- 动态地将过滤器应用于 JSON.parse()
- $location更改不适用于ngchange,而是应用于ngclick
- 如何将 :empty 选择器应用于 XML 文档
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 如何使用 JavaScript 将样式应用于 CKEditor 中的选定文本
- MongoDB 无法将$addToSet应用于 Meteor JS 中的非数组
- 将类应用于jquery ui对话框
- 将CSS应用于在JavaScript中创建的表-表的位置不正确
- addClass() 函数未应用于 ID
- 如何获取浏览器视口宽度&高度在Javascript和应用于CSS ID's