是否有一个jQuery选择器可以获取元素属性的内容,但如果该属性为空,它将获取元素本身的内容?例如,假设我有以下HTML:
<h2 alt="apple">Hello, world</h1>
<h2>banana</h2>
基本上,我希望它能做类似“h2.alt | h2”的事情(所以,如果没有“alt”标签,请选择元素本身)。
在此示例中,我希望能够在列表中获得以下内容:
apple
banana
这样做的原因是我将使用一个jQuery ToC插件,它允许你为jQuery选择器提供从中拉出ToC的元素(例如“h1,h2,h3”)。如果我希望ToC文本与内容/标题文本不同,我希望能够在我的一些元素中指定备用属性。
任何帮助都会很棒!
谢谢!
编辑:
只是为了澄清 - 它必须是选择器,因为它是我必须传递给插件的东西。 (例如“h2.alt,h3,h4.alt | h4”)。它不能是实际的代码。
谢谢!
答案 0 :(得分:2)
这是 FIDDLE
$('h2').each(function (id, value) {
var altAttr = $(this).attr('alt');
if (altAttr === undefined) alert($(this).text());
else alert(altAttr);
});
答案 1 :(得分:1)
你可以
var results = $('h2').map(function(){
var $this = $(this), alt = $this.attr('alt')
return alt == undefined ? $(this).text() : alt
}).get();
演示:Fiddle