在div whit whit类中获取特定的<p>,没有ID

时间:2018-05-07 14:59:29

标签: javascript html arrays parent-child

好的,这是我的代码&gt;&gt;

的一部分
 ERROR in ./node_modules/moip-sdk-node/dist/client/api.js Module not
 found: Error: Can't resolve '../../package' in
 'C:\dev\allclinics\node_modules\moip-sdk-node\dist\client' ERROR in
 ./node_modules/moip-sdk-node/dist/client/api_assinaturas.js

我想使用javascript来获取被点击的实际div,这个onclick事件shold添加到购物车div.p(class =“storeMenuTwoBodyText”)。textContent(类似我的意思)并放在购物车上已经完成了。

这是我在这里的第一个问题,对不起,如果我必须更具体,你们可以评论下来,我编辑帖子,我将放置我已经在这里的javascript代码&gt;&gt;

<div class="storeMenuTwoItem" onclick="addToCart()">
  <img src="resources/img/si/SI_EmpireDesodorante.jpg" class="storeMenuBodyTwoImg" />
  <p class="storeMenuTwoBodyText">Empire Desodo.</p>
  <p class="storeMenuTwoBodyPrice">23 R$</p>
</div>
<div class="storeMenuTwoItem" onclick="addToCart()">
  <img src="resources/img/si/SI_EspumaBarbear.jpg" class="storeMenuBodyTwoImg" />
  <p class="storeMenuTwoBodyText">Espuma Barbear</p>
  <p class="storeMenuTwoBodyPrice">22 R$</p>
</div>
<div class="storeMenuTwoItem" onclick="addToCart()">
  <img src="resources/img/si/SI_ShampooAntCaspa.jpg" class="storeMenuBodyTwoImg" />
  <p class="storeMenuTwoBodyText">Shampoo AC</p>
  <p class="storeMenuTwoBodyPrice">33 R$</p>
</div>

啊,是的,我已经将var和所有内容都设置好了。

5 个答案:

答案 0 :(得分:1)

通过单击调用时,函数的上下文包含一个名为event的变量,该变量包含有关调用它的click事件的信息。特别是,event.target将为您提供被点击的元素。

function addToCart() {
  console.log(event.target);
}
<div class="storeMenuTwoItem" onclick="addToCart()">
  <img src="resources/img/si/SI_EmpireDesodorante.jpg" class="storeMenuBodyTwoImg" />
  <p class="storeMenuTwoBodyText">Empire Desodo.</p>
  <p class="storeMenuTwoBodyPrice">23 R$</p>
</div>
<div class="storeMenuTwoItem" onclick="addToCart()">
  <img src="resources/img/si/SI_EspumaBarbear.jpg" class="storeMenuBodyTwoImg" />
  <p class="storeMenuTwoBodyText">Espuma Barbear</p>
  <p class="storeMenuTwoBodyPrice">22 R$</p>
</div>
<div class="storeMenuTwoItem" onclick="addToCart()">
  <img src="resources/img/si/SI_ShampooAntCaspa.jpg" class="storeMenuBodyTwoImg" />
  <p class="storeMenuTwoBodyText">Shampoo AC</p>
  <p class="storeMenuTwoBodyPrice">33 R$</p>
</div>

答案 1 :(得分:0)

您可以将点击的div元素作为this传递给HTML属性:

<div class="storeMenuTwoItem" onclick="addToCart(this)">

您可以通过p函数获取querySelector来自其中的特定类:

function addToCart(element) {
    storeTwoItemInfo.style.display = "block";
    storeTwoItemHeader.textContent = element.querySelector('.storeMenuTwoBodyText').textContent;
}

答案 2 :(得分:0)

querySelector是你的朋友

 var div = document.querySelector('div.storeMenuTwoItem');
 var p= div.querySelector('p.storeMenuTwoBodyText');

答案 3 :(得分:0)

event.target属性获取点击元素。它可以是div本身或其中的任何元素。通过类名检查它是哪个元素,如果它不是div元素,则通过parentElement属性获取div元素。然后从这个div元素中,您可以按类名访问它的任何元素。

function addToCart() {
  console.log(event.target.className);
  var divElement = event.target;

  if(event.target.className !== 'storeMenuTwoItem'){
     divElement = event.target.parentElement;
  }
  console.log(divElement.className);

  var pElement =divElement.getElementsByClassName('storeMenuTwoBodyText').length > 0 ?                    divElement.getElementsByClassName('storeMenuTwoBodyText')[0] : null ;

  if(pElement){
     console.log(pElement.textContent);
     //alert(pElement.textContent);
     storeTwoItemInfo.style.display = "block";
     storeTwoItemHeader.textContent = pElement.textContent;
  }
}

答案 4 :(得分:0)

伙计们我找到了一种方法,我把你所有的想法和混合了一些东西&gt;&gt; `function addToCart(){     storeTwoItemInfo.style.display =“block”;

storeTwoModalPhoto.src = event.target.querySelector(".storeMenuBodyTwoImg").src;
storeTwoModalHeader.innerHTML = event.target.querySelector(".storeMenuTwoBodyText").innerHTML;
storeTwoModalPrice.innerHTML = event.target.querySelector(".storeMenuTwoBodyPrice").innerHTML;
storeTwoModalText.innerHTML = event.target.querySelector(".storeMenuBodyTwoImg").alt;

}`

感谢您的帮助,请小心。