代码片段一:<ul id="specsChooseMainDisplay" class="list-unstyled specsChooseDisplay"><button data-value-id="1" data-value-price="4" data-value-goodnum="4" class="specifications specifications-0">一盒装4个月饼[月饼礼盒1]</button><button data-value-id="5" data-value-price="4" data-value-goodnum="4" class="specifications specifications-0">一盒装4个月饼[月饼礼盒1]</button></ul> 代码片段二:<td id="specsChooseModalDisplay"><button data-value-id="1" data-value-price="4" data-value-goodnum="4" class="specifications specifications-0">一盒装4个月饼[月饼礼盒1]</button><button data-value-id="3" data-value-price="4" data-value-goodnum="4" class="specifications specifications-0">一盒装4个月饼[月饼礼盒1]</button></td> 代码片段三:$(document).ready(function() { // 获取父元素 let container = document.getElementById('specsChooseMainDisplay'); // 添加事件监听器 container.addEventListener('click', function(event) { // 获取点击的目标元素 let target = event.target; // 判断目标元素是否为按钮 if (target.tagName === 'BUTTON') { // 获取所有按钮 let buttons = container.getElementsByTagName('BUTTON'); // 移除其他按钮的 specsChooseHover 类 for (let i = 0; i < buttons.length; i++) { if (buttons[i] !== target) { buttons[i].classList.remove('specsChooseHover'); buttons[i].removeAttribute('id'); } } // 切换目标按钮的 specsChooseHover 类 target.classList.toggle('specsChooseHover'); target.setAttribute('id', 'specsChooseHover'); specificationSelection(); } }); }); 请问,在代码片段三的基础上,该如果修改,才能使当点击代码片段一的某个button时,与其data-value-id的值一致的代码片段二的button也添加class的值specsChooseHover
时间: 2024-04-22 15:26:52 浏览: 11
要实现当点击代码片段一的某个button时,与其data-value-id的值一致的代码片段二的button也添加class的值specsChooseHover,可以在代码片段三中进行修改。以下是修改后的代码:
```javascript
$(document).ready(function() {
// 获取父元素
let container = document.getElementById('specsChooseMainDisplay');
// 添加事件监听器
container.addEventListener('click', function(event) {
// 获取点击的目标元素
let target = event.target;
// 判断目标元素是否为按钮
if (target.tagName === 'BUTTON') {
// 获取目标按钮的data-value-id值
let targetId = target.getAttribute('data-value-id');
// 获取代码片段二的父元素
let modalContainer = document.getElementById('specsChooseModalDisplay');
// 获取代码片段二中所有按钮
let modalButtons = modalContainer.getElementsByTagName('BUTTON');
// 遍历代码片段二中的按钮
for (let i = 0; i < modalButtons.length; i++) {
// 判断按钮的data-value-id值与目标按钮的data-value-id值是否一致
if (modalButtons[i].getAttribute('data-value-id') === targetId) {
// 添加或移除class的值specsChooseHover
modalButtons[i].classList.toggle('specsChooseHover');
}
}
// 切换目标按钮的 specsChooseHover 类
target.classList.toggle('specsChooseHover');
target.setAttribute('id', 'specsChooseHover');
specificationSelection();
}
});
});
```
在上述代码中,我们首先获取了目标按钮的data-value-id值,然后获取了代码片段二的父元素和其中的所有按钮。接下来,我们遍历代码片段二中的按钮,并判断其data-value-id值是否与目标按钮的data-value-id值一致。如果一致,则添加或移除class的值specsChooseHover。最后,切换目标按钮的specsChooseHover类,并执行specificationSelection()函数。
这样,当点击代码片段一的某个button时,与其data-value-id的值一致的代码片段二的button也会添加class的值specsChooseHover。