javascript - 在列表框中生成 "selected"html 标签

标签 javascript php jquery html wordpress

我有一个名为“Bookly”的 WordPress 插件。它生成一个包含一些值的列表框。 我需要通过 Jquery 获取选定的值,但是当我选择一个值时,此选择框不会生成 selected="selected"。

我怎样才能实现这个目标?

PHP 文件:

<select id="service" class="bookly-select-mobile bookly-js-select-service">
   <option value=""><?php echo esc_html( Common::getTranslatedOption( 'bookly_l10n_option_service' ) ) ?></option>
</select>

HTML 渲染:

<select id="service" class="bookly-select-mobile bookly-js-select-service">
   <option value="">Choose a service</option>
   <option value="1">Service 1</option>
   <option value="2">Service 2</option>
</select>

我需要什么:

<select id="service" class="bookly-select-mobile bookly-js-select-service">
   <option value="">Choose a service</option>
   <option value="1" selected="selected">Service 1</option>
   <option value="2">Service 2</option>
</select>

最佳答案

const service = document.getElementById('service');

service.addEventListener('click', (e) => {

  // wipe previous 'selected' elements
  Array.from(e.target.querySelectorAll('option')).forEach((option) => {
    option.removeAttribute('selected');
  });

  e.target.querySelector(`option[value="${e.target.value}"`).setAttribute('selected', 'selected');
});

这是一个JSFiddle您可以在其中看到它的实际效果。

关于javascript - 在列表框中生成 "selected"html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59854918/

相关文章:

javascript - vue js Prop 重置计时器

PHP 文本限制与展开和折叠选项

javascript - 使用div获取div中文本的长度

javascript - 如何用 <br/> 替换某些回车换行符后跟破折号?

javascript - 在 JavaScript 中转义 json

javascript - 如何将文本区域中的某些文本对齐为右对齐?

c# - 如何在不使用ajax的情况下将数据从View发送到Controller?

javascript - 是否可以通过 AJAX 调用执行后台 PHP 服务器任务,而不会锁定您的站点?

javascript确认不会停止提交表单

php - 如何在 laravel 中使用 ajax post 请求将图像插入数据库?