简体   繁体   English

HTML onClick函数更改JavaScript源

[英]HTML onClick Function to change the JavaScript source

I have below button list 我有以下按钮列表

<button class="button button2">Hospital</button>
<button class="button button2">Medical</button>
<button class="button button2">Pharmacy</button>

what is the best on click function to replace my Javascript url (dbexport2.php) on below script 什么是最好的单击函数来替换以下脚本上的我的Javascript URL(dbexport2.php)

  // Change this depending on the name of your PHP or XML file
  downloadUrl('dbexport2.php', function(data) {
    var xml = data.responseXML;

I would like to change the php file based on the button click, example for hospital it would like to be "downloadUrl('hospital.php')" for medical it would like to be "downloadUrl('medical.php") 我想基于按钮单击更改php文件,例如对于医院来说,示例名称为“ downloadUrl('hospital.php')”,对于医疗示例,示例名称为“ downloadUrl('medical.php”)

You can do it using the value attribute 您可以使用value属性来实现

 function handleResponse(data) { var xml = data.responseXML; // .. etc } var buttons = document.getElementsByClassName('button'); for(var i = 0, j = buttons.length; i < j; i++) { var btn = buttons[i]; btn.addEventListener('click', function() { downloadUrl(this.value, handleResponse); }); } 
 <button class="button" value="hospital.php">Hospital</button> <button class="button" value="medical.php">Medical</button> <button class="button" value="pharmacy.php">Pharmacy</button> 

<button class="button button2" data-url="hospital.php">Hospital</button>
<button class="button button2" data-url="medical.php">Medical</button>

<script>
var downloadButtons = document.querySelector('.button[data-url]'),
    numButtons      = downloadButtons.length;
if(numButtons){
    while(numButtons--) {
        if(downloadButtons[numButtons]) {
            downloadButtons[numButtons].onClick = function(){
                var url = this.getAttribute('data-url');
                downloadUrl(url, function(data) { ... }
            }
        }
    }
}
</script> 

Something akin to this approach, depending on what JavaScript library (or lack thereof) you have available. 类似于这种方法,取决于您可用的JavaScript库(或缺少)。 Add an attribute that you can reference in javascript when the click event is called, and then pass it into your function when the event is fired? 添加一个可以在调用click事件时在javascript中引用的属性,然后在触发该事件时将其传递到函数中?

Insert your URLs in data-url. 将您的网址插入data-url。

<button class="button button2" data-url="Hospital.php">Hospital</button>
<button class="button button2" data-url="Medical.php">Medical</button>
<button class="button button2" data-url="Pharmacy.php">Pharmacy</button>

and then go with a simple looping. 然后用一个简单的循环去。

document.querySelectorAll('button[data-url]').forEach(item => {
    item.addEventListener('click', e => {

        let url = item.getAttribute('data-url');

        //Your code
        downloadUrl(url, function(data) { });
    });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM