- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要根据第一个框的选择来同步这两个下拉框。
我不能为此使用 “value”
标记,因为代码库从其他地方提取这些值。
以下代码无效:
html
<select name="alpha">
<option id="1" data-sync="1">One</option>
<option id="2" data-sync="2" selected>Two</option>
<option id="3" data-sync="3">Three</option>
<option id="4" data-sync="1">Four One</option>
<option id="5" data-sync="2">Five Two</option>
</select>
<select name="beta">
<option value="1" id="1" name="1" syncOne="1">2</option>
<option value="2" name="2" id="2" syncOne="2">4</option>
<option value="3" name="3" id="3" syncOne="3">6</option>
</select>
JavaScript
window.onload = function()
{
document.getElementsByName("alpha")[0].onchange = function()
{
document.getElementsByName("beta")[0].getAttribute("syncOne") = this.options[this.selectedIndex].getAttribute("data-sync");
}
// Trigger when loading.
document.getElementsByName("alpha")[0].onchange();
}
但是,下一个代码更改有效但超出了项目规范(我不能使用 value
属性)。
document.getElementsByName("beta")[0].value = this.options[this.selectedIndex].getAttribute("data-sync");
有什么建议吗?
最佳答案
首先,请注意 syncOne
不是 <select name="beta">
的属性,相反,它是与该选择器相关的每个选项上可用的属性,因此下一个代码不会产生您所期望的结果:
document.getElementsByName("beta")[0].getAttribute("syncOne") = ...;
现在,一种解决方案是使用 querySelector()获取相关的option
来自 beta
的元素选择器,然后设置 selected
该选项的属性:
window.onload = function()
{
document.getElementsByName("alpha")[0].onchange = function()
{
let sel = this.options[this.selectedIndex].getAttribute("data-sync");
let betaOpt = document.querySelector(`select[name="beta"] option[syncOne="${sel}"]`);
betaOpt.selected = true;
}
// Trigger when loading.
document.getElementsByName("alpha")[0].onchange();
}
<select name="alpha">
<option id="1" data-sync="1">One</option>
<option id="2" data-sync="2" selected>Two</option>
<option id="3" data-sync="3">Three</option>
<option id="4" data-sync="1">Four One</option>
<option id="5" data-sync="2">Five Two</option>
</select>
<select name="beta">
<option value="1" id="1" name="1" syncOne="1">2</option>
<option value="2" name="2" id="2" syncOne="2">4</option>
<option value="3" name="3" id="3" syncOne="3">6</option>
</select>
请注意,我使用了 template literal (ES6
特征)生成 querySelector()
的查询字符串.如果您不能使用它,您可以使用字符串连接,如下所示:
let betaOpt = document.querySelector('select[name="beta"] option[syncOne="' + sel + '"]');
关于javascript - getAttribute 未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56104999/
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: ServletContext and Session object 我觉得很奇怪 session.getAttrib
var objects = document.getElementsByTagName('object'); for (var i=0, n=objects.length;i
我正在尝试将给定元素的自定义属性与具有特定类的所有其他元素的自定义属性进行比较...这就是我所拥有的 function choose(el){ var text = $(el).getAttr
如何处理错误无法读取未定义的属性“getAttribute”。我正在使用 DOMParser 来获取 xml 标记的 type 属性。此 xml 标记有时可以是 FirstTag,有时可以是 Seco
我正在做一个任务,要求我们为矩形定义一个类并为其配备各种方法,其中两个是 getHeight()和 getWidth() , 除了 return this.height; 之外不应该做任何事情和 re
我正在使用 jQuery var editor = CodeMirror.fromTextArea($('#upEditor'), { stylesheet:'monokai.css' })
我正在开发一个触摸屏项目,并尝试显示一些图像(将一行分成几个段落,并使用每个段落的背景来显示图像),并为所选图像添加边框(只能是一个)选择),现在我需要通过onclick()显示移动的图像,例如,首先
你好,我是 JS 新手,代码中可能有更多错误。但我不明白为什么 getAttribute 不是一个函数。 测试: test('TESTING', () => { const filterNod
我不确定这里出了什么问题,但是当我尝试运行我的代码时,wishlist.getAttribute 返回 null,但如果我专门调用 getElementById,它将返回我需要的值。虽然我需要 wis
我需要根据第一个框的选择来同步这两个下拉框。 我不能为此使用 “value” 标记,因为代码库从其他地方提取这些值。 以下代码无效: html One Two Three Four
所以我有一个带有动态生成表格的页面,看起来像 行
以下代码片段中的代码演示了在更改 disabled 属性后,我无法检索原始属性值,至少对于 disabled 属性而言是如此。 The jQuery docs暗示 element.getAttribu
如何获取一个元素的所有属性?就像我下面的例子一样,我一次只能得到一个,我想拉出所有 anchor 标签的属性。 $dom = new DOMDocument(); @$dom->loadHTML(ht
我是 Javascript 新手。我想编写一个 javascript 代码,当我单击一个按钮时,会弹出警报窗口并写入数据消息属性。这是我的代码: click function pop() {
我正在尝试使用以下代码获取图像的值: image = doc.querySelector("img.product-pic-image").getAttribute("src"); 我总是得到 nul
我正在尝试获取 angualar.js 中的一些请求属性。我可以使用 request.getAttribute() 在 jsp 方法中获取相同的属性。 我不知道如何获取相同的内部 Angular 。您
我似乎偶然发现了一个看似错误的等价物,使用以下命令生成维基百科主页 (wikipedia.org) 的所有输入的列表: var inputs = Array.prototype.slice.call(
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能在这里 on-t
我正在寻找一种方法来获取存储在变量中的类的值(对于我的示例“AAABC”)。我使用 getAttribute 方法尝试了不同的关键字,但没有成功。关键字“class”显然给了我“gwt-Label”,
我是JAVA编程的新手。 我想使用 android.media.ExifInterface 来保存和恢复一些字节数组作为 exif 信息。 String str = new String(byte
我是一名优秀的程序员,十分优秀!