Javascript 尝试使用jQuery将对象转换为字符串

Javascript 尝试使用jQuery将对象转换为字符串,javascript,jquery,string,Javascript,Jquery,String,我试图在字符串中搜索标记,但似乎无法使其正常工作。这是js。我们的目标是让控制台给我“这是有效的”,这是不会发生的 $(document).ready( function() { $('div').on('mousedown', function(e) { var target = e.target; console.log(target); if (target.indexOf("<b>") > 0) {

我试图在字符串中搜索标记,但似乎无法使其正常工作。这是js。我们的目标是让控制台给我“这是有效的”,这是不会发生的

$(document).ready( function() {
    $('div').on('mousedown', function(e) {
        var target = e.target;
        console.log(target);
        if (target.indexOf("<b>") > 0) {
            console.log("this works");
        }
    });
});
当我这样做并点击粗体标记时,我得到以下信息:

[object HTMLElement] 

关于如何使其工作,您有什么想法吗?

您需要所述元素的HTML:

var html = $(e.target).html();
if (text.indexOf("<b>")) //do stuff
var html=$(e.target.html();
if(text.indexOf(“”)//执行任务

要搜索html:

if ($(this).html().indexOf("<b>") > -1)
或者如果您想查看是否单击了
b

if ($(e.target).is('b')) {

第三条线是问题发生的地方;您只需要从元素而不是元素本身获取文本:

HTML

<div id="test">This text is normal <b>this text is bold</b></div>
<div id="output"></div>
此文本为正常文本此文本为粗体
JS

$('#test').on('mousedown', function(e) {
    var txt = $(e.currentTarget).html();
    if (txt.indexOf("<b>") > 0) {
        $('#output').html("this works");
    }
});
$('test')。在('mousedown',函数(e)上{
var txt=$(e.currentTarget).html();
如果(txt.indexOf(“”>0){
$('#output').html(“这很有效”);
}
});

您可以通过选中以下项来搜索标签: if($(this.find(“b”).length>0) 详细代码如下:

$('#test').on('mousedown', function(e) {
    if($(this).find("b").length > 0){
        $('#output').html("this works");
    }
});

工作版本显示为

这只是给了我粗体标记内的文本,我需要它返回两侧带有粗体标记的文本。这适用于字母“b”,但我正在查找标记“EthanNYC,$(此)。find(“b”)实际上意味着查找标记“”。我附上jQueryAPI:这里供您参考。由于某些原因,当我单击粗体文本时,它不起作用,只单击非粗体文本。不知道为什么会发生这种情况。@EthanNYC对此表示抱歉,应该使用
e.currentTarget
而不是
e.target
,这样它将从
#test
读取
html()
,而不是从任何嵌套元素读取。更新了小提琴和答案。
if ($(e.target).is('b')) {
<div id="test">This text is normal <b>this text is bold</b></div>
<div id="output"></div>
$('#test').on('mousedown', function(e) {
    var txt = $(e.currentTarget).html();
    if (txt.indexOf("<b>") > 0) {
        $('#output').html("this works");
    }
});
$('#test').on('mousedown', function(e) {
    if($(this).find("b").length > 0){
        $('#output').html("this works");
    }
});