我正在尝试使用类<h3>
获取"grid-block__title"
的内部文本/值(据我所知?)当前位于我需要启动的元素之上({{1标识为<p>
的}。我该怎么做才能正确?我的缩写标记看起来像这样:
addToCartMessageParagraph
我试过了..
<div>
<h3 class="grid-block__title">...</h3>
<h3 class="grid-block__description">...</h3>
<h3 class="grid-block__description">...</h3>
<form>
<select>...</select>
<span>...</span>
<button>...</button>
<input>...</input>
<input>...</input>
<p id="addToCartMessageParagraph" class="js-item-added js-hidden ...">...</p>
</form>
</div>
( undefined )$('#addToCartMessageParagraph').closest('h3[class="grid-block__title"]').val();
( undefined )$('#addToCartMessageParagraph').closest('h3').val();
( undefined )$(this).find('.js-item-added').closest('h3').val();
命令,并且Chrome调试器中的不可用。如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
您可以获取最接近的form
祖先元素,然后使用h3
或.prevAll()
方法获取上一个.siblings()
元素(因为form
/ h3
元素是兄弟姐妹):
$('#addToCartMessageParagraph').closest('form').siblings('h3.grid-block__title').text();
或:
$('#addToCartMessageParagraph').closest('form').prevAll('h3.grid-block__title').first().text();
您的尝试不起作用的原因是因为h3
元素不是#addToCartMessageParagraph
元素的祖先。 .closest()
方法将遍历DOM树并过滤祖先元素。解决方案是选择最接近的form
祖先,然后获取兄弟h3
元素(因为h3
/ form
元素是兄弟姐妹)。
或者,如果包装器div
元素具有类(例如.wrapper
),那么您可以简单地遍历DOM并选择它,然后选择后代h3
元素:
$('#addToCartMessageParagraph').closest('.wrapper').find('h3.grid-block__title').text();
pousrse的,如果它始终是最接近的div
祖先,你可以根据元素类型选择它:
$('#addToCartMessageParagraph').closest('div').find('h3.grid-block__title').text();
答案 1 :(得分:0)
最简单的方法是找到最近的div并从那里遍历如下。
$('#addToCartMessageParagraph').closest('div').find('h3.grid-block__title').text();