它看起來像你說你有一些div像<div id="#myid">
這是不正確的。你不應該在ID中有#
;這就是它在CSS查詢中被引用的方式。
但是,你可以使用鏈接鏈接到該分區是這樣的:<a href="#myid">
在這種情況下,你會想剝離#
得到,如果你打算用什麼來定位像getElementById()
即使是正確的值所以,你在一個jQuery對象上調用substring,而不是在id本身。嘗試是這樣的:
function thanksForHelping(div){
var siblingOne = $(div).next(), siblingTwo = siblingOne.next();
var existingIdOne = siblingOne.attr("id");
var existingIdTwo = siblingTwo.attr("id");
var noHashIdOne = existingIdOne.replace(/^#/, ''); //Using regex here in case it doesn't actually have a leading #
var noHashIdTwo = existingIdOne.replace(/^#/, '');
}
如果你這樣做,是我之前提到的鏈接的事情,你有兩種方法來解決:1)獲取實際的ID就像我上面顯示,或使用jQuery,只是使用帶有散列的版本。所以,這樣的事情:
function elementsForIntraPageLinks(){
var links = $("a.internal");
links.each(function(i, link) {
var href = link.href;
var targetElement = $(href);
console.log("targetElement:", targetElement);
});
}
或不jQuery的,但在一個現代的瀏覽器:
function elementsForIntraPageLinks(){
var links = document.querySelectorAll('a[href^="#"]');
links.forEach(function(link, i, links) {
console.log("targetElement:", document.querySelector(link.href));
});
}
或稍微舊的瀏覽器
function elementsForIntraPageLinks(){
var links = document.getElementsByTagName('a'), i, ii, link;
for(i = 0, ii = links.length; i < ii; i++){
link = links[i];
if (/^#/.test(link.href)) {
console.log("targetedElement", document.getElementById(link.href.replace(/^#/, ""));
}
});
}
siblingOne是一個元素,你想在其上調用subString() –
感謝您的信息,我如何將其更改爲一個字符串,以便我可以調用它的subString。 – user3311351
'$(div).next()[0] .id'應該返回一個字符串。 – Ryan