gpt4 book ai didi

javascript - 如何使用用户输入动态传递数据集属性?

转载 作者:行者123 更新时间:2023-12-03 02:12:20 24 4
gpt4 key购买 nike

我有一个文本输入框,用户可以在其中输入他们想要在 DOM 中查找的数据*。我通过单击按钮获取用户输入,然后进行一些解析。如何将输入文本的值作为 HTMLElement.dataset 选择器的最后部分?

//HTML for text input
<div class="form-group">
<label for="specificSelector">Specific Selector</label>
<input type="text" class="form-control" id="specificSelector" placeholder="Enter the specific selector here">
</div>
<p id="a"></p>

//JavaScript
var specificSelector = document.getElementById("specificSelector").value;
var a = document.getElementById("a"); // Test element
var parsedSelector = specificSelector.match(/data-(.*)/)[1];
console.log("Parsed selector: ", parsedSelector);

//I need to pass the value of the parsedSelector to the below line
var aData = a.dataset.parsedSelector;
console.log("aData: ", aData);

我已阅读this来自 MDN 开发人员,但无法弄清楚。看来您必须以驼峰式大小写传递数据属性,但可能无法通过变量来完成此操作?

提前致谢。

最佳答案

当您需要通过变量访问对象属性时,您需要使用数组括号语法。

在下面的示例中,在文本框中键入“data-test”,然后按 TAB

// Get a reference to the input
var specificSelector = document.getElementById("specificSelector");

var a = document.getElementById("a"); // Test element

// Set up an event handler for when the data is changed and the
// input loses focus
specificSelector.addEventListener("change", function(){
// Extract the custom name portion of the data- attribute
var parsedSelector = specificSelector.value.match(/data-(.*)/)[1];
console.log("Parsed selector: ", parsedSelector);

// Pass the string (stored in the variable) into the dataset object
// of another element to look up the object key.
var aData = a.dataset[parsedSelector];
console.log("aData: ", aData);
});
<div class="form-group">
<label for="specificSelector">Specific Selector</label>
<input type="text" class="form-control" id="specificSelector" placeholder="Enter the specific selector here">
</div>
<div id="a" data-test="test2"></div>

关于javascript - 如何使用用户输入动态传递数据集属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com