Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取元素名称值的JavaScript_Javascript - Fatal编程技术网

获取元素名称值的JavaScript

获取元素名称值的JavaScript,javascript,Javascript,我试图在用户单击时从元素名称中获取值,我在标记管理系统中设置了提交跟踪,跟踪提交事件发生的时间,但是在某些页面上,客户可以在两个位置注册,他们希望将事件拆分 我不是开发人员,因此需要一些帮助,我已将标签管理系统中的点击跟踪绑定到: button.button-rightSide.validateFormSubmit 基于以下代码: <ul class="prhList prhList--hor prhForm__form"> <li class="prhForm_

我试图在用户单击时从元素名称中获取值,我在标记管理系统中设置了提交跟踪,跟踪提交事件发生的时间,但是在某些页面上,客户可以在两个位置注册,他们希望将事件拆分

我不是开发人员,因此需要一些帮助,我已将标签管理系统中的点击跟踪绑定到:

button.button-rightSide.validateFormSubmit

基于以下代码:

    <ul class="prhList prhList--hor prhForm__form">
   <li class="prhForm__form__input">
      <div class="prhForm__item inputText inputText--leftSide newsletterForm__emailInput validateInputText">
         <div class="inputField inputText__input">
            <input class="inputField__input" type="email" name="email" data-email="email_1424" value="" autocomplete="off" placeholder="Email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$">
            <input type="hidden" name="adestraActionUrl" value="https://penguin-group.msgfocus.com/k/Penguin-Group/lee_child_1027557_form"/>
            <div class="inputField__border"></div>
         </div>
         <div class="prhForm__item__error prhForm__item__error--empty">
            <p>Please enter an email.</p>
         </div>
         <div class="prhForm__item__error prhForm__item__error--invalid">
            <p>Please enter a valid email address</p>
         </div>
      </div>
   </li>
   <li class="prhForm__form__submit">
      <button class="button button--rightSide validateFormSubmit">
      <span class="button__text">Sign Up</span>
      </button>
   </li>
</ul>
但是,我需要的帮助是动态onClick获取onClick name值,例如,如果页面上的第一个组件获取[0],而第二个组件获取[1]

通过执行以下操作,尝试了答案中的@Teemu逻辑:

document.getElementsByName("adestraActionUrl")[0].value
var classname = document.getElementsByClassName("prhForm__form__submit");

var myFunction = function() {
    var attribute = this.closest('ul').querySelector('input[name="adestraActionUrl"]');
    alert(attribute);
};

for (var i = 0; i < classname.length; i++) {
    classname[i].addEventListener('click', myFunction, false);
}

如果你只有两个页面,而不是一个动态页面,为什么不给你的URL标签分配不同的名称或ID呢

见:

或者更好:给他们一个身份证

<input type="hidden" id="url1" value="https://penguin-group.msgfocus.com/k/Penguin-Group/lee_child_1027557_form"/>

// get element by ID
document.getElementbyID("url1").value;
button click处理程序函数中的这个.closest'ul'.querySelector'input[name=adestraActionUrl]'以与按钮放置位置相同的形式查找输入。这是指click listener附加到的元素。如果已委派事件,请改用event.target


请注意,对于最接近的IEs,您需要一个polyfill,请参见MDN。

请通过适当调整缩进使代码可读。如果你不愿意把你的问题格式化,这样其他人就不会有阅读困难,我们为什么要在意回答呢?还有,你的措辞似乎有点不对劲,至少我不明白你到底在问什么。抱歉,当我回到笔记本电脑时,我会添加第二个代码块并整理缩进,我试图将代码的大小保持在最小值。我无法更新源代码,因为两天后上线,所以我被要求在TMS中编写代码,我要求更新id,但有人告诉我在上线之前没有足够的时间。为此,我做了如下工作:'var classname=document.getelementsbyclassnameprform\uuu form\uu提交;var myFunction=function{var attribute=this.closest'ul'。querySelector'input[name=adestractionurl];alertattribute;};对于var i=0;i[object HTMLInputElement]
<input type="hidden" name="adestraActionUrl" value="https://penguin-group.msgfocus.com/k/Penguin-Group/lee_child_1027557_form"/>

<input type="hidden" name="adestraActionUrl2" value="https://penguin-group.msgfocus.com/k/Penguin-Group/lee_child_1027557_form"/>
<input type="hidden" id="url1" value="https://penguin-group.msgfocus.com/k/Penguin-Group/lee_child_1027557_form"/>

// get element by ID
document.getElementbyID("url1").value;