单击后获取上一个元素文本

时间:2017-01-12 09:55:19

标签: javascript jquery google-tag-manager

在以下结构中

<div class="class name with spaces_9">
 <div class="class name with spaces_8">
  <div class="class name with spaces_7">
    <div class="class name with spaces_6">
     <span class="class name with spaces_5"> price number </span>
   </div>
  </div>
 </div>
</div>
<div class="class name with spaces_3"> some stuff</div>
<div class="class name with spaces_3">
 <form id="123">
  <div class="class name with spaces_2">
   <div class="class name with spaces_1">
    <a id="content" class="button_class">Button text</a>
   </div>  
  </div> 
 </form>
</div>

我的目的是将span中的字符串与类名&#34;类名一起放入space_5&#34;在用户点击&#34; a&#34;之后的某个变量中。标签。这样一个奇怪的目的来自这样一个事实,即在我网站的实际范围内,我得到了价格编号。有几个块有这样的按钮和价格,所有元素都有类似的类名,但价格不同。我需要将此代码放在GTM自定义java脚本变量或自定义html标记中。无论如何,我需要在点击按钮后从一定数量的div中获得apper跨度的值。

2 个答案:

答案 0 :(得分:0)

我们可以使用

获取之前的值
 $(this).prevAll("input[type=text]").val()

现场演示:http://jsfiddle.net/z7hw8/

答案 1 :(得分:0)

您可以使用某种数据窗口小部件,这样您可以在页面中使用js窗口小部件来迭代它们。

类似的东西:

HTML:

<div data-widget="foobar">
  <div class="class name with spaces_6">
   <span class="class name with spaces_5"> price number </span>
  </div> 
  <div class="class name with spaces_1">
    <a id="content" class="button_id">Button text</a>
  </div>  
</div>

js:

$('[data-widget="foobar"]').each(function() {
  var $elm = $(this);
  var $price = $('.class name with spaces_5', $elm);
  var $trigger = $('.button_id', $elm);

  $($trigger).on('click', function() {
    console.log($price); // Or do whatever you wan't with the value
  });
});