Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery从var中查找属性和元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用jquery从var中查找属性和元素?

Javascript 使用jquery从var中查找属性和元素?,javascript,jquery,html,Javascript,Jquery,Html,我在变量中包含innerHTML,其获取方式如下: var mash = e.currentTarget.innerHTML; 现在,mash具有以下值: "<div class="mashup-details-view"> <div class="mashup-item" data-mashup-id="36967" id="mashup-sort-id"> <div class="mashup-thumbnail" title="Cis

我在变量中包含innerHTML,其获取方式如下:

 var mash = e.currentTarget.innerHTML;
现在,mash具有以下值:

"<div class="mashup-details-view">    <div class="mashup-item" data-mashup-id="36967" id="mashup-sort-id">         <div class="mashup-thumbnail" title="Cist">          <span class="x-small thumbnail" style="min-width: 60px; min-height: 34px;"><img onerror="javascript:vidizmo.app.utils.handle_thumbnail_error(this);" src="http://az2213.vo.msecnd.net/vidizmodev/001419/081358/Images/00000c/ImgThumbs/Copa_67100313-4f60-46ff-95c1-907c75b077a8_th1.jpg"></span> </div> <div class="IconDescDiv">     <div class="TitleClass" href="#" title="Cist">Cist</div> </div> </div></div> "
“Cist”
现在我需要获取“数据mashup id”属性、img标记和class=“TitleClass”元素如何从变量中获取它们我正试图通过find('img')获取它们,但无法获取。
请任何人都能弄明白吗

不要为此使用
innerHTML
innerHTML
生成元素的字符串表示形式。您希望直接使用这些元素

首先,围绕当前目标获取jQuery包装器:

// `mash` is a jQuery wrapper around the current target
var mash = $(e.currentTarget);
现在,您可以使用CSS选择器查找目标中的内容并从中检索信息

获取
数据mashup id
值:

// `id` is a string
var id = mash.find("[data-mashup-id"]).attr("data-mashup-id");
获取图像(您可以从结果对象获取有关图像的信息):

使用“标题类”获取
div


不要为此使用
innerHTML
innerHTML
生成元素的字符串表示形式。您希望直接使用这些元素

首先,围绕当前目标获取jQuery包装器:

// `mash` is a jQuery wrapper around the current target
var mash = $(e.currentTarget);
现在,您可以使用CSS选择器查找目标中的内容并从中检索信息

获取
数据mashup id
值:

// `id` is a string
var id = mash.find("[data-mashup-id"]).attr("data-mashup-id");
获取图像(您可以从结果对象获取有关图像的信息):

使用“标题类”获取
div


您真的需要创建mash变量吗?其值不是您列出的有效字符串。只需使用.prop即可获得所需的属性。是否确实需要创建mash变量?其值不是您列出的有效字符串。只需使用.prop即可获得所需的属性。使用
.attr
而不是
.data
的任何具体原因?@MarcusEkwall:只是没有理由使用
data
检索属性值,而且
data
很容易被误解。所以除非OP正在使用它,否则我不会介绍它。人们倾向于认为它是与
数据-*
属性交互的简写,当然,它不是,我发现这会让人困惑。下面是一个我所看到的让人困惑的例子(更多的评论):()。(谢谢编辑,顺便说一句!)我同意它很容易被误解,在很多情况下也被误用,但在这种情况下,OP可能希望ID为
int
(只要它不是64位int),在这种情况下
。data
会自动完成类型转换。我尝试在有意义的地方使用
.data
,例如本例。我认为最好是教人们如何正确使用
.data
,而不是仅仅使用
。attr
@MarcusEkwall:我不同意
数据的隐式类型转换是一件好事。:-)(谢谢,顺便说一句,我不知道。)我在教如何正确使用
数据方面没有问题,但是当它与手头的任务完全无关时,它只是妨碍了对手头任务的清晰解释。在教学时,最好避免引入无关的话题。您使用
.attr
而不是
.data
的具体原因是什么?@MarcusEkwall:只是没有理由使用
数据
检索属性值,而且
数据
很容易被误解。所以除非OP正在使用它,否则我不会介绍它。人们倾向于认为它是与
数据-*
属性交互的简写,当然,它不是,我发现这会让人困惑。下面是一个我所看到的让人困惑的例子(更多的评论):()。(谢谢编辑,顺便说一句!)我同意它很容易被误解,在很多情况下也被误用,但在这种情况下,OP可能希望ID为
int
(只要它不是64位int),在这种情况下
。data
会自动完成类型转换。我尝试在有意义的地方使用
.data
,例如本例。我认为最好是教人们如何正确使用
.data
,而不是仅仅使用
。attr
@MarcusEkwall:我不同意
数据的隐式类型转换是一件好事。:-)(谢谢,顺便说一句,我不知道。)我在教如何正确使用
数据方面没有问题,但是当它与手头的任务完全无关时,它只是妨碍了对手头任务的清晰解释。教学时,最好避免引入无关的离题主题。