javascript - 获取 html nextSibling

标签 javascript jquery html meteor

此 Meteor 客户端代码尝试获取 2 个值。
(1)this.label中的值的<span class="radio-label">{{this.label}}</span>线。
(2){{this.result}}中的值在线<input type="radio" name="rbtn" value={{this.result}}>
当我单击 input 时,就会发生这种情况或上span元素。那怎么办呢?谢谢

Template.results.events({
  'click .twin-item': (event) => {
    event.preventDefault();
    event.stopPropagation();
    if (event.target.tagName === 'SPAN') {
      console.log(event.target.innerHTML);
    } else if (event.target.tagName === 'INPUT') {
      console.log(event.target.value);
    }
  }
});


<template name="results">
 <p id="result" data-id={{_id}}>{{{display.name}}} <br>
{{display.address}} <br>
<span id="category">{{display.result}}</span></p> <br>
  <div class="twin-group js-radioGroup" data-id={{_id}}>
    <ul class="upShift">
      {{#each display.deciders}}
        <li>
          <label class="twin-item">
            <input type="radio" name="rbtn" value={{this.result}}>
            <span class="radio-label">{{this.label}}</span>
          </label>
        </li>
      {{/each}}
    </ul>
  </div>
</template>

最佳答案

每当您尝试从 DOM 中提取最初放入模板中的内容时,您可能都做错了。

您可以在 {{#each}} 循环中嵌套另一个模板,然后在该嵌套模板处理程序的情况下,this 的值将是当前数据上下文所以你可以这样做:

html:

<template name="results">
<p id="result" data-id={{_id}}>{{{display.name}}} <br>
{{display.address}} <br>
<span id="category">{{display.result}}</span></p> <br>
  <div class="twin-group js-radioGroup" data-id={{_id}}>
    <ul class="upShift">
      {{#each display.deciders}}
        {{> inner}}
      {{/each}}
    </ul>
  </div>
</template>

<template name="inner">
<li>
  <label class="twin-item">
    <input type="radio" name="rbtn" value={{result}}>
    <span class="radio-label">{{label}}</span>
  </label>
</li>
</template>

此外,将事件附加到每个控件比尝试找出事件来自哪个控件更简单:

js:

Template.inner.events({
  'click input'(event) => {
    event.stopPropagation();
    console.log(this.result);
  },
  'click span'(event) =>{
    event.stopPropagation();
    console.log(this.label);  
  }
});

关于javascript - 获取 html nextSibling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42081946/

相关文章:

javascript - Jquery slider 与 Slick 幻灯片

javascript - jQuery 脚本仅在第二个事件上执行

php - 我可以使用 jquery post 上传图片吗?

html - 如何在 Bootstrap 中将静态文本添加到输入框?

javascript - 为什么我不能向 JS 对象添加字段?

javascript - 图像 slider 悬停停止和动画过渡

javascript - 如何根据下拉选项更改 keyup 值长度?

python - 在服务器上运行Python脚本(是否必须在/cgi-bin/中)?

html - 为什么css float会从子元素到父元素添加padding?

javascript - JSP window.open() 函数