使用 "this" jquery 获取 parents 文本数据
Get parents text data using "this" jquery
我的文档中有以下 HTML 结构 HTML STRUCTURE
[![在此处输入图片描述][1]][1]
我需要获取 info__meta-dates
文本,因此只有在 jQuery 中使用 onClick
事件的日期,这是我目前拥有的代码:
$("input[type=checkbox]").click(function (e) {
$(this)
.parent()
.parent()
.parent()
.find(".info__meta--dates")
.text()
);
});
但我也得到了嵌套范围内的 date
文本。
您可以 clone
该跨度标签并使用 .remove()
从克隆的元素中删除 mdc-typography--caption
,这样最终结果将只是您需要的文本
演示代码 :
$("input[type=checkbox]").click(function(e) {
var texts = $(this).closest(".ev-info_meta").find(".info__meta--dates").clone(); //clone that span tag
texts.find('span.mdc-typography--caption').remove(); //remove elemnt with class mdc-typography--caption
console.log(texts.text().trim()); //show
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ev-info_meta">
<span class="info__meta--dates"><span class="mdc-typography--caption">dates</span> fffff</span>
<div>
<input type="checkbox">
</div>
</div>
由于没有直接获取日期的元素,你可以尝试上面Swati解释的方法,如果你不愿意从DOM中删除元素,那么试试字符串操作方法。
以下方法仅适用于这种情况。
$("input[type=checkbox]").click(function (e) {
let dateString = $(this).parent()
.parent()
.parent()
.find(".info__meta--dates")
.text()
);
//removing the "date" string from the entire string
let date = dateString.substring(4,dateString.length).trim();
console.log(date);
});
我的文档中有以下 HTML 结构 HTML STRUCTURE
[![在此处输入图片描述][1]][1]
我需要获取 info__meta-dates
文本,因此只有在 jQuery 中使用 onClick
事件的日期,这是我目前拥有的代码:
$("input[type=checkbox]").click(function (e) {
$(this)
.parent()
.parent()
.parent()
.find(".info__meta--dates")
.text()
);
});
但我也得到了嵌套范围内的 date
文本。
您可以 clone
该跨度标签并使用 .remove()
从克隆的元素中删除 mdc-typography--caption
,这样最终结果将只是您需要的文本
演示代码 :
$("input[type=checkbox]").click(function(e) {
var texts = $(this).closest(".ev-info_meta").find(".info__meta--dates").clone(); //clone that span tag
texts.find('span.mdc-typography--caption').remove(); //remove elemnt with class mdc-typography--caption
console.log(texts.text().trim()); //show
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ev-info_meta">
<span class="info__meta--dates"><span class="mdc-typography--caption">dates</span> fffff</span>
<div>
<input type="checkbox">
</div>
</div>
由于没有直接获取日期的元素,你可以尝试上面Swati解释的方法,如果你不愿意从DOM中删除元素,那么试试字符串操作方法。
以下方法仅适用于这种情况。
$("input[type=checkbox]").click(function (e) {
let dateString = $(this).parent()
.parent()
.parent()
.find(".info__meta--dates")
.text()
);
//removing the "date" string from the entire string
let date = dateString.substring(4,dateString.length).trim();
console.log(date);
});