代码片段一:<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,且当代码片段一的button的class的specsChooseHover和id的specsChooseHover被移除时,代码片段二的button也发生同样的改变;并且而当点击代码片段二的某个button时,与其data-value-id的值一致的代码片段一的button也添加class的值specsChooseHover,并且当代码片段二的button的class的specsChooseHover和id的specsChooseHover被移除时,代码片段一的button也发生同样的改变
时间: 2024-04-22 20:26:45 浏览: 65
要实现当点击代码片段一的某个button时,与其data-value-id的值一致的代码片段二的button也添加class的值specsChooseHover,并且当代码片段一的button的class的specsChooseHover和id的specsChooseHover被移除时,代码片段二的button也发生同样的改变;当点击代码片段二的某个button时,与其data-value-id的值一致的代码片段一的button也添加class的值specsChooseHover,并且当代码片段二的button的class的specsChooseHover和id的specsChooseHover被移除时,代码片段一的button也发生同样的改变,可以进行以下修改:
```javascript
$(document).ready(function() {
// 获取父元素
let container = document.getElementById('specsChooseMainDisplay');
// 获取代码片段二的父元素
let modalContainer = document.getElementById('specsChooseModalDisplay');
// 添加事件监听器到代码片段一按钮
container.addEventListener('click', function(event) {
// 获取点击的目标元素
let target = event.target;
// 判断目标元素是否为按钮
if (target.tagName === 'BUTTON') {
// 获取目标按钮的data-value-id值
let targetId = target.getAttribute('data-value-id');
// 获取代码片段一中所有按钮
let buttons = container.getElementsByTagName('BUTTON');
// 移除其他按钮的specsChooseHover类和id
for (let i = 0; i < buttons.length; i++) {
if (buttons[i] !== target) {
buttons[i].classList.remove('specsChooseHover');
buttons[i].removeAttribute('id');
}
}
// 获取代码片段二中所有按钮
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类和id
target.classList.toggle('specsChooseHover');
target.setAttribute('id', 'specsChooseHover');
specificationSelection();
}
});
// 添加事件监听器到代码片段二按钮
modalContainer.addEventListener('click', function(event) {
// 获取点击的目标元素
let target = event.target;
// 判断目标元素是否为按钮
if (target.tagName === 'BUTTON') {
// 获取目标按钮的data-value-id值
let targetId = target.getAttribute('data-value-id');
// 获取代码片段二中所有按钮
let modalButtons = modalContainer.getElementsByTagName('BUTTON');
// 移除其他按钮的specsChooseHover类和id
for (let i = 0; i < modalButtons.length; i++) {
if (modalButtons[i] !== target) {
modalButtons[i].classList.remove('specsChooseHover');
modalButtons[i].removeAttribute('id');
}
}
// 获取代码片段一中所有按钮
let buttons = container.getElementsByTagName('BUTTON');
// 遍历代码片段一中的按钮
for (let i = 0; i < buttons.length; i++) {
// 判断按钮的data-value-id值与目标按钮的data-value-id值是否一致
if (buttons[i].getAttribute('data-value-id') === targetId) {
// 添加或移除class的值specsChooseHover
buttons[i].classList.toggle('specsChooseHover');
}
}
// 切换目标按钮的specsChooseHover类和id
target.classList.toggle('specsChooseHover');
target.setAttribute('id', 'specsChooseHover');
specificationSelection();
}
});
});
```
在上述修改中,我们添加了一个事件监听器到代码片段二的父元素modalContainer,并在其中实现了对代码片段二按钮的操作。当点击代码片段二的某个button时,与其data-value-id的值一致的代码片段一的button也会添加class的值specsChooseHover,并且当代码片段二的button的class的specsChooseHover和id的specsChooseHover被移除时,代码片段一的button也会发生同样的改变。
这样,无论是点击代码片段一还是代码片段二的按钮,与其data-value-id的值一致的另一段代码中的按钮都会添加class的值specsChooseHover,并且当其中一个按钮的class的specsChooseHover和id的specsChooseHover被移除时,另一段代码中的对应按钮也会发生同样的改变。
阅读全文