如何从点击目标中获取上一个元素?

时间:2018-08-06 06:13:12

标签: javascript jquery html

你好,我有这个html代码:

<div class="row newrow">
        <div class="col-10"><b>this</b></div>
        <div class="col-2">
            <img src="close.png" id="exit"/>
        </div>
    </div>

当我使用此代码单击ID退出的img时

$('body').on('click','#exit',function(e){

})

我需要在其后面的<b>文本为"this"

我已经尝试过了,但是不起作用:

$('body').on('click','#exit',function(e){    
 $q = $(e.target).prev('b')
       var word = $q.text()
)}

它只给我从头开始点击的内容

4 个答案:

答案 0 :(得分:2)

尝试一下:

var obj = {
	"vcap": {
		"vcap.services.site.volume_mounts": "",
		"vcap.services.kafka.credentials.credential_8.name": "test",
		"vcap.services.mq.credentials.credential_5.name": "A",
		"vcap.services.mq.credentials.credential_5.value": "Avalue",
		"vcap.services.kafka.credentials.credential_8.value": "testvalue"
	}
};

console.log('Key: ', obj['vcap']['vcap.services.kafka.credentials.credential_8.name']);

console.log('Value: ', obj['vcap']['vcap.services.kafka.credentials.credential_8.value']);

答案 1 :(得分:1)

您可以使用$(this).closest('.row').find('b')

$('#exit').click(function(e){   
  $q = $(this).closest('.row').find('b');
  var word = $q.text();
  console.log(word);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row newrow">
  <div class="col-10"><b>this</b></div>
  <div class="col-2">
      <img src="close.png" id="exit"/>
  </div>
</div>

答案 2 :(得分:0)

您需要选择被点击的img parent 以获取.col-2,然后获取col-2的{​​{1}}进入prev(),然后然后,您可以访问其.col-10来获得孩子(单个children())。另外,如果您使用<b>,则无需e.target

this
$('body').on('click', '#exit', function() {
  $q = $(this).parent().prev().children();
  var word = $q.text()
  console.log(word);
});

答案 3 :(得分:0)

尝试一下

$('body').on('click','#exit',function(e){    
 var word = $(this).closest('.newrow').find('b').text();
 });